public void SubjectSetEntityWhenModified() { ModelSubject aSubject = new EAVModelLibrary.ModelSubject() { SubjectID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, aSubject.ObjectState, "Object state should be 'New' on creation."); aSubject.MarkUnmodified(); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, aSubject.ObjectState, "Object state failed to transition to 'Unmodified'."); ModelEntity value = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; aSubject.Entity = value; Assert.AreEqual(value, aSubject.Entity, "Property 'Entity' was not set properly."); Assert.AreEqual(value.EntityID, aSubject.EntityID, "Property 'EntityID' was not reported properly."); Assert.IsTrue(value.Subjects.Contains(aSubject), "Property 'Subjects' was not updated properly."); Assert.AreEqual(EAV.Model.ObjectState.Modified, aSubject.ObjectState, "Object state failed to transition to 'Modified'."); value = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; aSubject.Entity = value; Assert.AreEqual(value, aSubject.Entity, "Property 'Entity' was not set properly."); Assert.AreEqual(value.EntityID, aSubject.EntityID, "Property 'EntityID' was not reported properly."); Assert.IsTrue(value.Subjects.Contains(aSubject), "Property 'Subjects' was not updated properly."); Assert.AreEqual(EAV.Model.ObjectState.Modified, aSubject.ObjectState, "Object state should remain 'Modified' when property set."); }
public void SubjectSetEntityWhenNew() { EAV.Model.IModelSubject aSubject = factory.Create<EAV.Model.IModelSubject>(); Assert.AreEqual(EAV.Model.ObjectState.New, aSubject.ObjectState, "Object state should be 'New' on creation."); ModelEntity value = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; aSubject.Entity = value; Assert.AreEqual(value, aSubject.Entity, "Property 'Entity' was not set properly."); Assert.AreEqual(value.EntityID, aSubject.EntityID, "Property 'EntityID' was not reported properly."); Assert.IsTrue(value.Subjects.Contains(aSubject), "Property 'Subjects' was not updated properly."); Assert.AreEqual(EAV.Model.ObjectState.New, aSubject.ObjectState, "Object state should remain 'New' when property set."); }