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
-~----------~----~----~----~------~----~------~--~---

Reply via email to