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); }