public void Test_MarkForDelete_WhenSingle_WhenDeleteRelated_WhenHasRelatedBO_ShouldDoNothing() { //---------------Set up test pack------------------- BORegistry.DataAccessor = new DataAccessorInMemory(); ClassDef.ClassDefs.Clear(); IClassDef classDef = MyBO.LoadClassDefWithRelationship(); MyRelatedBo.LoadClassDef(); MyBO bo = (MyBO)classDef.CreateNewBusinessObject(); bo.Save(); ReflectionUtilities.SetPropertyValue(bo.Status, "IsDeleted", true); ISingleRelationship relationship = (ISingleRelationship)bo.Relationships["MyRelationship"]; MyRelatedBo myRelatedBO = new MyRelatedBo(); relationship.SetRelatedObject(myRelatedBO); SetDeleteRelatedAction(relationship, DeleteParentAction.DeleteRelated); //---------------Assert Precondition---------------- Assert.IsTrue(bo.Status.IsDeleted); Assert.IsFalse(myRelatedBO.Status.IsDeleted); Assert.IsNotNull(relationship.GetRelatedObject()); Assert.AreEqual(DeleteParentAction.DeleteRelated, relationship.DeleteParentAction); //---------------Execute Test ---------------------- relationship.MarkForDelete(); //---------------Test Result ----------------------- Assert.IsTrue(bo.Status.IsDeleted); Assert.IsTrue(myRelatedBO.Status.IsDeleted); }