I cleaned up my test base class-- getting rid of the SessionScope and
relying only on TransactionScopes within my tests.  I was just
grasping at straws-- maybe the testrunner was leaving a scope open or
something.    That wasn't the problem.

It looks like the problem comes in my use of an Any[] mappying
attribute with Cascade = CascadeEnum.SaveUpdate.

If I have this it causes the issue:
        [Any(typeof (int), MetaType = typeof (string), TypeColumn =
"RecipientType", IdColumn = "RecipientID",
            Cascade = CascadeEnum.SaveUpdate)]
        [Any.MetaValue("USER", typeof (User))]
        [Any.MetaValue("TEAM", typeof (Team))]
        public IFeedback Recipient { get; set; }

But if I set Cascade = CascadeEnum.None, it works.

I still don't understand why it only worked SOME times and not
others.  I'm definitely in over my head.

On Nov 17, 3:59 pm, JakeS <[email protected]> wrote:
> I'm using nunit to test out my activerecord models and make sure my
> mapping works as expected.  Strangely, I'm getting an error every once
> in a while when running my tests:
>
> System.Data.SqlClient.SqlException: The INSERT statement conflicted
> with the FOREIGN KEY constraint "FK618CE2931513F4CD". The conflict
> occurred in database "TestDatabase", table "dbo.Team", column 'Id'.
> The statement has been terminated.
>
> I'll run a test once, get this error.  If I run it again, I may or may
> not get the same error.  Sometimes it goes through fine, sometimes it
> does not.  It's driving me crazy.
>
> All of my test classes inherit from this:
>
> public class ActiveRecordSetupFixture : BaseControllerTest
> {
>     private static bool _alreadySetup = false;
>     private static SessionScope _scope;
>
>     //The test's [TestFixtureSetUp] will call this method
>     protected void Setup()
>     {
>         SetupActiveRecord();
>     }
>
>     private static void SetupActiveRecord()
>     {
>         if (!_alreadySetup)
>         {
>
>             log4net.Config.XmlConfigurator.Configure();
>
>             ActiveRecordStarter.Initialize(typeof
> (ModelBase<>).Assembly, ActiveRecordSectionHandler.Instance);
>             _alreadySetup = true;
>             ActiveRecordStarter.DropSchema();
>             ActiveRecordStarter.CreateSchema();
>         }
>
>         _scope = new SessionScope(FlushAction.Auto);
>     }
>
> }
>
> Any ideas if I'm doing something wrong with my test setup, or if it's
> something in my mapping?  If it's a mapping problem, why does it only
> happen sometimes?

--

You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=.


Reply via email to