Example #1
0
        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();
        }
Example #2
0
        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.");
        }
Example #3
0
        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.");
        }
Example #4
0
        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'.");
        }
Example #5
0
        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."));
                }
            }
        }
Example #6
0
        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();
        }
Example #7
0
        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()
            });
        }