public void TestDeleteRelated_WhenCircularDelete_ShouldResolve()
        {
            //---------------Set up test pack-------------------
            DataStoreInMemory dataStore = new DataStoreInMemory();
            BORegistry.DataAccessor = new DataAccessorInMemory(dataStore);
            Entity.LoadDefaultClassDef_WithCircularDeleteRelatedToSelf();
            Entity entity1 = new Entity();
            Entity entity2 = new Entity();
            entity1.Relationships.SetRelatedObject("RelatedEntity", entity2);
            entity2.Relationships.SetRelatedObject("RelatedEntity", entity1);
            entity1.Save();
            entity2.Save();
            entity1.MarkForDelete();
            TransactionCommitterInMemory committer = new TransactionCommitterInMemory(dataStore);
            committer.AddBusinessObject(entity1);
            //---------------Execute Test ----------------------
            committer.CommitTransaction();
            //---------------Test Result -----------------------
            AssertBOStateIsValidAfterDelete(entity1);
            AssertBOStateIsValidAfterDelete(entity2);

            AssertBusinessObjectNotInDataStore(entity1);
            AssertBusinessObjectNotInDataStore(entity2);
        }
 public void TestDeleteRelated_WhenCircularDelete_ShouldResolve()
 {
     //---------------Set up test pack-------------------
     Entity.LoadDefaultClassDef_WithCircularDeleteRelatedToSelf();
     Entity entity1 = new Entity();
     Entity entity2 = new Entity();
     entity1.Relationships.SetRelatedObject("RelatedEntity", entity2);
     entity2.Relationships.SetRelatedObject("RelatedEntity", entity1);
     entity1.Save();
     entity2.Save();
     entity1.MarkForDelete();
     TransactionCommitterDB committer = new TransactionCommitterDB(DatabaseConnection.CurrentConnection);
     committer.AddBusinessObject(entity1);
     //---------------Execute Test ----------------------
     committer.CommitTransaction();
     //---------------Test Result -----------------------
     BOTestUtils.AssertBOStateIsValidAfterDelete(entity1);
     BOTestUtils.AssertBOStateIsValidAfterDelete(entity2);
     AssertBusinessObjectNotInDatabase(entity1);
     AssertBusinessObjectNotInDatabase(entity2);
 }