Esempio n. 1
0
        private void LoadValueUnit(EAV.Model.IModelValue value)
        {
            bool valueWasUnmodified = value.ObjectState == EAV.Model.ObjectState.Unmodified;

            HttpResponseMessage response = client.GetAsync(String.Format("api/metadata/units/{0}", value.UnitID)).Result;

            if (response.IsSuccessStatusCode)
            {
                var unit = response.Content.ReadAsAsync <EAVModelLibrary.ModelUnit>().Result;

                unit.MarkUnmodified();

                value.Unit = unit;

                unit.MarkUnmodified();

                if (valueWasUnmodified)
                {
                    value.MarkUnmodified();
                }
            }
            else
            {
                throw (new ApplicationException("Attempt to get unit failed."));
            }
        }
Esempio n. 2
0
        public void ValueStateTransitionNewToDeleted()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            aValue.MarkDeleted();
        }
Esempio n. 3
0
        public void ValueStateTransitionNewToUnmodifiedWithNullID()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            aValue.MarkUnmodified();

            Assert.AreEqual(EAV.Model.ObjectState.Unmodified, aValue.ObjectState, "Object state failed to transition to 'Unmodified'.");
        }
Esempio n. 4
0
        public void ValueCreate()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            Assert.IsNull(aValue.RawValue, "Property 'RawValue' should be null on creation.");
            Assert.IsNull(aValue.Unit, "Property 'Units' should be null on creation.");

            Assert.IsNull(aValue.Instance, "Property 'Instance' should be null on creation.");
            Assert.IsNull(aValue.Attribute, "Property 'Attribute' should be null on creation.");
        }
Esempio n. 5
0
        public void ValueSetRawValueWhenNew()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            string value = Guid.NewGuid().ToString();

            aValue.RawValue = value;

            Assert.AreEqual(value, aValue.RawValue, "Property 'RawValue' was not set properly.");
            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should remain 'New' when property set.");
        }
Esempio n. 6
0
        private void SaveValue(EAV.Model.IModelValue value)
        {
            HttpResponseMessage response;

            if (value.Unit != null)
            {
                SaveValueUnit(value.Unit);
                value.Unit = value.Unit;
            }

            if (value.ObjectState == EAV.Model.ObjectState.New)
            {
                response = client.PostAsJsonAsync <EAV.Store.IStoreValue>(String.Format("api/data/instances/{0}/values?attribute={1}", value.InstanceID.GetValueOrDefault(), value.AttributeID), value).Result;
                if (response.IsSuccessStatusCode)
                {
                    EAVModelLibrary.ModelValue newValue = response.Content.ReadAsAsync <EAVModelLibrary.ModelValue>().Result;

                    value.MarkUnmodified();
                }
                else
                {
                    throw (new ApplicationException("Attempt to create value failed."));
                }
            }
            else if (value.ObjectState == EAV.Model.ObjectState.Modified)
            {
                response = client.PatchAsJsonAsync <EAV.Store.IStoreValue>("api/data/values", value).Result;
                if (response.IsSuccessStatusCode)
                {
                    value.MarkUnmodified();
                }
                else
                {
                    throw (new ApplicationException("Attempt to update value failed."));
                }
            }

            if (value.ObjectState == EAV.Model.ObjectState.Deleted)
            {
                response = client.DeleteAsync(String.Format("api/data/instances/{0}/values/{1}", value.InstanceID.GetValueOrDefault(), value.AttributeID)).Result;
                if (response.IsSuccessStatusCode)
                {
                }
                else
                {
                    throw (new ApplicationException("Attempt to delete value failed."));
                }
            }
        }
Esempio n. 7
0
        public void ValueSetUnitWhenNewWithNewUnit()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            EAVModelLibrary.ModelUnit aUnit = new EAVModelLibrary.ModelUnit()
            {
                UnitID = rng.Next()
            };
            aValue.Unit = aUnit;

            Assert.AreEqual(aUnit, aValue.Unit, "Property 'Units' was not set properly.");
            Assert.AreEqual(aUnit.UnitID, aValue.UnitID, "Property 'UnitID' was not reported properly.");
            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should remain 'New' when property set.");
            Assert.AreEqual(EAV.Model.ObjectState.New, aUnit.ObjectState, String.Format("Object state for Unit object incorrectly transitioned to '{0}' when 'Unit' property set.", aUnit.ObjectState));
        }
Esempio n. 8
0
        public void ValueSetAttributeWhenNew()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            EAVModelLibrary.ModelAttribute attribute = new EAVModelLibrary.ModelAttribute()
            {
                AttributeID = rng.Next()
            };
            aValue.Attribute = attribute;

            Assert.AreEqual(attribute, aValue.Attribute, "Property 'Attribute' was not set properly.");
            Assert.AreEqual(attribute.AttributeID, aValue.AttributeID, "Property 'AttributeID' was not reported properly.");
            Assert.IsTrue(attribute.Values.Contains(aValue), "Property 'Values' was not updated properly.");
            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should remain 'New' when property set.");
        }
Esempio n. 9
0
        public void ValueSetInstanceWhenNew()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            EAVModelLibrary.ModelChildInstance value = new EAVModelLibrary.ModelChildInstance()
            {
                InstanceID = rng.Next()
            };
            aValue.Instance = value;

            Assert.AreEqual(value, aValue.Instance, "Property 'Instance' was not set properly.");
            Assert.AreEqual(value.InstanceID, aValue.InstanceID, "Property 'InstanceID' was not reported properly.");
            Assert.IsTrue(value.Values.Contains(aValue), "Property 'Values' was not updated properly.");
            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should remain 'New' when property set.");
        }
Esempio n. 10
0
        public void ValueSetUnitWhenNewWithDeletedUnit()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            EAVModelLibrary.ModelUnit aUnit = new EAVModelLibrary.ModelUnit()
            {
                UnitID = rng.Next()
            };

            aUnit.MarkUnmodified();
            Assert.AreEqual(EAV.Model.ObjectState.Unmodified, aUnit.ObjectState, "Object state for 'Unit' object failed to transition to 'Unmodified'.");

            aUnit.MarkDeleted();
            Assert.AreEqual(EAV.Model.ObjectState.Deleted, aUnit.ObjectState, "Object state for 'Unit' object failed to transition to 'Deleted'.");

            aValue.Unit = aUnit;
        }
Esempio n. 11
0
        public void ValueSetAttributeWhenDeleted()
        {
            EAV.Model.IModelValue aValue = factory.Create <EAV.Model.IModelValue>();

            Assert.AreEqual(EAV.Model.ObjectState.New, aValue.ObjectState, "Object state should be 'New' on creation.");

            aValue.MarkUnmodified();

            Assert.AreEqual(EAV.Model.ObjectState.Unmodified, aValue.ObjectState, "Object state failed to transition to 'Unmodified'.");

            aValue.MarkDeleted();

            Assert.AreEqual(EAV.Model.ObjectState.Deleted, aValue.ObjectState, "Object state failed to transition to 'Deleted'.");

            aValue.Attribute = new EAVModelLibrary.ModelAttribute()
            {
                AttributeID = rng.Next()
            };
        }