public void EntityClearSubjectsWhenDeleted() { EAVModelLibrary.ModelEntity anEntity = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should be 'New' on creation."); EAVModelLibrary.ModelSubject value = new EAVModelLibrary.ModelSubject() { SubjectID = rng.Next() }; anEntity.Subjects.Add(value); Assert.IsTrue(anEntity.Subjects.Contains(value), "Property 'Subjects' was not updated properly."); Assert.AreEqual(anEntity, value.Entity, "Property 'Entity' was not set properly."); Assert.AreEqual(anEntity.EntityID, value.EntityID, "Property 'EntityID' was not reported properly."); Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should remain 'New' when property set."); anEntity.MarkUnmodified(); value.MarkUnmodified(); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, anEntity.ObjectState, "Object state failed to transition to 'Unmodified'."); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, value.ObjectState, "Object state failed to transition to 'Unmodified'."); anEntity.MarkDeleted(); Assert.AreEqual(EAV.Model.ObjectState.Deleted, anEntity.ObjectState, "Object state failed to transition to 'Deleted'."); Assert.AreEqual(EAV.Model.ObjectState.Deleted, value.ObjectState, "Object state failed to transition to 'Deleted'."); anEntity.Subjects.Clear(); }
public void EntityClearSubjectsWhenNew() { EAVModelLibrary.ModelEntity anEntity = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should be 'New' on creation."); EAVModelLibrary.ModelSubject value = new EAVModelLibrary.ModelSubject() { SubjectID = rng.Next() }; anEntity.Subjects.Add(value); value = new EAVModelLibrary.ModelSubject() { SubjectID = rng.Next() }; anEntity.Subjects.Add(value); Assert.IsTrue(anEntity.Subjects.Contains(value), "Property 'Subjects' was not updated properly."); Assert.AreEqual(anEntity, value.Entity, "Property 'Entity' was not set properly."); Assert.AreEqual(anEntity.EntityID, value.EntityID, "Property 'EntityID' was not reported properly."); Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should remain 'New' when property set."); anEntity.Subjects.Clear(); Assert.IsFalse(anEntity.Subjects.Contains(value), "Property 'Subjects' was not updated properly."); Assert.IsNull(value.Entity, "Property 'Entity' was not set properly."); Assert.IsNull(value.EntityID, "Property 'EntityID' was not reported properly."); Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should remain 'New' when property set."); }
public void EntitySetDescriptorWhenModified() { EAVModelLibrary.ModelEntity anEntity = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should be 'New' on creation."); anEntity.MarkUnmodified(); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, anEntity.ObjectState, "Object state failed to transition to 'Unmodified'."); string value = Guid.NewGuid().ToString(); anEntity.Descriptor = value; Assert.AreEqual(value, anEntity.Descriptor, "Property 'Descriptor' was not set properly."); Assert.AreEqual(EAV.Model.ObjectState.Modified, anEntity.ObjectState, "Object state failed to transition to 'Modified'."); value = Guid.NewGuid().ToString(); anEntity.Descriptor = value; Assert.AreEqual(value, anEntity.Descriptor, "Property 'Descriptor' was not set properly."); Assert.AreEqual(EAV.Model.ObjectState.Modified, anEntity.ObjectState, "Object state should remain 'Modified' when property set."); }
public void EntityStateTransitionNewToUnmodifiedWithValidID() { EAVModelLibrary.ModelEntity anEntity = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should be 'New' on creation."); anEntity.MarkUnmodified(); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, anEntity.ObjectState, "Object state failed to transition to 'Unmodified'."); }
public void SaveEntity(EAV.Model.IModelEntity entity) { HttpResponseMessage response; if (entity.ObjectState == EAV.Model.ObjectState.New) { response = client.PostAsJsonAsync <EAV.Store.IStoreEntity>(String.Format("api/entities"), entity).Result; if (response.IsSuccessStatusCode) { EAVModelLibrary.ModelEntity newEntity = response.Content.ReadAsAsync <EAVModelLibrary.ModelEntity>().Result; entity.EntityID = newEntity.EntityID; entity.MarkUnmodified(); } else { throw (new ApplicationException("Attempt to create entity failed.")); } } else if (entity.ObjectState == EAV.Model.ObjectState.Modified) { response = client.PatchAsJsonAsync <EAV.Store.IStoreEntity>("api/entities", entity).Result; if (response.IsSuccessStatusCode) { entity.MarkUnmodified(); } else { throw (new ApplicationException("Attempt to update entity failed.")); } } if (entity.ObjectState == EAV.Model.ObjectState.Deleted) { response = client.DeleteAsync(String.Format("api/entities/{0}", entity.EntityID.GetValueOrDefault())).Result; if (response.IsSuccessStatusCode) { } else { throw (new ApplicationException("Attempt to delete entity failed.")); } } }
public void EntitySetDescriptorWhenDeleted() { EAVModelLibrary.ModelEntity anEntity = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should be 'New' on creation."); anEntity.MarkUnmodified(); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, anEntity.ObjectState, "Object state failed to transition to 'Unmodified'."); anEntity.MarkDeleted(); Assert.AreEqual(EAV.Model.ObjectState.Deleted, anEntity.ObjectState, "Object state failed to transition to 'Deleted'."); anEntity.Descriptor = Guid.NewGuid().ToString(); }
public void EntityAddToSubjectsWhenDeleted() { EAVModelLibrary.ModelEntity anEntity = new EAVModelLibrary.ModelEntity() { EntityID = rng.Next() }; Assert.AreEqual(EAV.Model.ObjectState.New, anEntity.ObjectState, "Object state should be 'New' on creation."); anEntity.MarkUnmodified(); Assert.AreEqual(EAV.Model.ObjectState.Unmodified, anEntity.ObjectState, "Object state failed to transition to 'Unmodified'."); anEntity.MarkDeleted(); Assert.AreEqual(EAV.Model.ObjectState.Deleted, anEntity.ObjectState, "Object state failed to transition to 'Deleted'."); anEntity.Subjects.Add(new EAVModelLibrary.ModelSubject() { SubjectID = rng.Next() }); }