[transfer-dev] Re: Rollback 'save()' methods using Transaction advise()?

2009-01-20 Thread bimp

Bob, thanks for responding. Good to know. I had a suspicion and you
just confirmed it.

On Jan 20, 7:05 pm, Bob Silverberg  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  wrote:
>
> > Mark,
>
> > Thanks again but one thing I noticed. The  > 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  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"  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):
>
> >> > 
>
> >> > 
> >> >    //wrap everything in a transaction
> >> >    application.transferFactory.getTransaction().advise(this, "^test");
> >> > 
>
> >> > 
> >> >   //dump the cache after every test
> >> >    >> > 
>
> >> > 
> >> >   
>
> >> >   
> >> >   
> >> > 
>
> >> > 
>
> >> > Using a combination of discardAll() and  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  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  operation. I thought from
> >> > > the docs that this would effectively rollback all the database and
> >> > > Transfer operations but nothing happened. The  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
-~--~~~~--~~--~--~---



[transfer-dev] Re: Rollback 'save()' methods using Transaction advise()?

2009-01-20 Thread Bob Silverberg

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  wrote:
>
>
> Mark,
>
> Thanks again but one thing I noticed. The  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  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"  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):
>>
>> > 
>>
>> > 
>> >//wrap everything in a transaction
>> >application.transferFactory.getTransaction().advise(this, "^test");
>> > 
>>
>> > 
>> >   //dump the cache after every test
>> >   > > 
>>
>> > 
>> >   
>>
>> >   
>> >   
>> > 
>>
>> > 
>>
>> > Using a combination of discardAll() and  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  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  operation. I thought from
>> > > the docs that this would effectively rollback all the database and
>> > > Transfer operations but nothing happened. The  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 Silverberg
www.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
-~--~~~~--~~--~--~---



[transfer-dev] Re: Rollback 'save()' methods using Transaction advise()?

2009-01-20 Thread bimp


Mark,

Thanks again but one thing I noticed. The  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  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"  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):
>
> > 
>
> > 
> >    //wrap everything in a transaction
> >    application.transferFactory.getTransaction().advise(this, "^test");
> > 
>
> > 
> >   //dump the cache after every test
> >    > 
>
> > 
> >   
>
> >   
> >   
> > 
>
> > 
>
> > Using a combination of discardAll() and  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  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  operation. I thought from
> > > the docs that this would effectively rollback all the database and
> > > Transfer operations but nothing happened. The  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
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[transfer-dev] Re: Rollback 'save()' methods using Transaction advise()?

2009-01-20 Thread bimp

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"  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):
>
> 
>
> 
>    //wrap everything in a transaction
>    application.transferFactory.getTransaction().advise(this, "^test");
> 
>
> 
>   //dump the cache after every test
>    
>
> 
>   
>
>   
>   
> 
>
> 
>
> Using a combination of discardAll() and  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  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  operation. I thought from
> > the docs that this would effectively rollback all the database and
> > Transfer operations but nothing happened. The  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
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---



[transfer-dev] Re: Rollback 'save()' methods using Transaction advise()?

2009-01-20 Thread Mark Mandel

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):




   //wrap everything in a transaction
   application.transferFactory.getTransaction().advise(this, "^test");



  //dump the cache after every test
  


  

  
  




Using a combination of discardAll() and  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  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  operation. I thought from
> the docs that this would effectively rollback all the database and
> Transfer operations but nothing happened. The  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

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