Bob, thanks for responding. Good to know. I had a suspicion and you just confirmed it.
On Jan 20, 7:05 pm, Bob Silverberg <bob.silverb...@gmail.com> wrote: > That is the nature of identity fields in SQL Server. There's nothing > you can do about it (short of running a DBCC CHECKIDENT command, which > you don't want to do), but it really should have no bearing on your > application. You should not be counting on the value of your identity > fields being in sequence, as that's not what the feature is intended > to be used for. It's just to generate a unique value for each record. > > Cheers, > Bob > > > > On Tue, Jan 20, 2009 at 9:32 PM, bimp <bpa...@gmail.com> wrote: > > > Mark, > > > Thanks again but one thing I noticed. The <cftransaction > > action="rollback"> works in that the newly inserted test record > > doesn't appear post-test in my table. However the autoincrement ID > > field of that same table does actually increase in my SQL Server > > table. > > > I confirmed this by first running my unit test once without the > > rollback and saw the test record with an id=5. I then put back the > > rollback statement and ran my unit test 4 more times and each time, no > > test record persisted which is good. Then I removed the rollback > > statement, ran the test, and to my surprise, the id field was at id=10 > > instead of id=6. > > > Any advice? Thanks. > > > -Bim > > > On Jan 20, 5:43 pm, bimp <bpa...@gmail.com> wrote: > >> Mark, sweet that worked!! > > >> Now correct me if I'm wrong. With this type of implementation of > >> rolling back, this assumes that in addition to the test functions > >> being advised by the Transaction class, that all the functions being > >> tested in the service, gateway, and business objects need to also be > >> advised as well for all this to work? > > >> -Bim > > >> On Jan 20, 4:54 pm, "Mark Mandel" <mark.man...@gmail.com> wrote: > > >> > This is a really good question! > > >> > I've done similar things in my unit tests, by cheating a little, and > >> > it worked a charm. > > >> > I can't seem the find the code... but the basics went something like > >> > this (written in gmail, so errors will happen): > > >> > <cfcomponent extends="frameworkYouUse.TestCase"> > > >> > <cfscript> > >> > //wrap everything in a transaction > >> > application.transferFactory.getTransaction().advise(this, "^test"); > >> > </cfscript> > > >> > <cffunction name="tearDown"> > >> > //dump the cache after every test > >> > <cfset application.transferFactory.getTransfer().discardAll(); > >> > </cffunction> > > >> > <cffunction name="testFoo"> > >> > <cfset assertTrue(...) /> > > >> > <!--- rollback any processing that you've done ---> > >> > <cftransaction action="rollback" /> > >> > </cffunction> > > >> > </component> > > >> > Using a combination of discardAll() and <cftransaction> you could roll > >> > back your data and your cache quite happily. > > >> > There is an enhancement ticket for you to be able to start() and > >> > stop() transactions on your own, but this way works pretty well as > >> > well. > > >> > Mark > > >> > On Wed, Jan 21, 2009 at 11:44 AM, bimp <bpa...@gmail.com> wrote: > > >> > > I'm trying to devise a method of rolling back database operations in > >> > > Transfer for unit testing purposes. After reading about leveraging the > >> > > Transaction object advise() implementation (http://docs.transfer- > >> > > orm.com/wiki/Transactions_and_Transfer.cfm), I tried creating a > >> > > function called 'rollback()' that is wrapped by the advise() method > >> > > along with all my other 'save()' functions. > > >> > > Then only in unit testing implementations, I would execute the > >> > > 'rollback()' function which does a <cfthrow> operation. I thought from > >> > > the docs that this would effectively rollback all the database and > >> > > Transfer operations but nothing happened. The <cfthrow> occurred but > >> > > the database records still existed. Am I using the Transaction advise > >> > > () function correctly? > > >> > > Is there a way to execute a tranasaction rollback using the advise > >> > > implementation? > > >> > > Thanks. > > >> > -- > >> > E: mark.man...@gmail.com > >> > W:www.compoundtheory.com > > -- > Bob Silverbergwww.silverwareconsulting.com --~--~---------~--~----~------------~-------~--~----~ Before posting questions to the group please read: http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer You received this message because you are subscribed to the Google Groups "transfer-dev" group. To post to this group, send email to transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en -~----------~----~----~----~------~----~------~--~---