public void TestSerialization() { ObjectChangeRule toSeralize = new ObjectChangeRule(); toSeralize.TriggerEvents = TriggerEvents.Delete | TriggerEvents.Add; ObjectChangeRule deserialized = (ObjectChangeRule)UnitTestControl.XmlSerializeRoundTrip <ObjectChangeRule>(toSeralize); Assert.AreEqual(toSeralize.TriggerEvents, deserialized.TriggerEvents); }
public void TestSerializationComplex() { RuleGroup group1 = new RuleGroup(); group1.Operator = GroupOperator.Any; ObjectChangeRule test1 = new ObjectChangeRule(); test1.TriggerEvents = TriggerEvents.Add; group1.Items.Add(test1); ObjectChangeRule test2 = new ObjectChangeRule(); test2.TriggerEvents = TriggerEvents.Delete; group1.Items.Add(test2); RuleGroup group2 = new RuleGroup(); group2.Operator = GroupOperator.One; ObjectChangeRule test3 = new ObjectChangeRule(); test3.TriggerEvents = TriggerEvents.Add; group2.Items.Add(test3); ObjectChangeRule test4 = new ObjectChangeRule(); test4.TriggerEvents = TriggerEvents.Delete; group2.Items.Add(test4); group1.Items.Add(group2); RuleGroup deserializedGroup1 = (RuleGroup)UnitTestControl.XmlSerializeRoundTrip <RuleGroup>(group1); Assert.AreEqual(group1.Items.Count, deserializedGroup1.Items.Count); Assert.AreEqual(group1.Operator, deserializedGroup1.Operator); Assert.AreEqual(((ObjectChangeRule)deserializedGroup1.Items[0]).TriggerEvents, test1.TriggerEvents); Assert.AreEqual(((ObjectChangeRule)deserializedGroup1.Items[1]).TriggerEvents, test2.TriggerEvents); Assert.AreEqual(((RuleGroup)deserializedGroup1.Items[2]).Items.Count, group2.Items.Count); RuleGroup deserializedGroup2 = (RuleGroup)deserializedGroup1.Items[2]; Assert.AreEqual(group2.Operator, deserializedGroup2.Operator); Assert.AreEqual(((ObjectChangeRule)(deserializedGroup2.Items[0])).TriggerEvents, test3.TriggerEvents); Assert.AreEqual(((ObjectChangeRule)(deserializedGroup2.Items[1])).TriggerEvents, test4.TriggerEvents); }
public void EvaluateOnObjectUpdate() { Guid newId = Guid.NewGuid(); try { MAObjectHologram maObject = ActiveConfig.DB.CreateMAObject(newId, "person", ObjectModificationType.Update); // Positive Tests ObjectChangeRule target = new ObjectChangeRule(); target.TriggerEvents = TriggerEvents.Update; Assert.IsTrue(target.Evaluate(maObject)); target.TriggerEvents = TriggerEvents.Add | TriggerEvents.Update; Assert.IsTrue(target.Evaluate(maObject)); target.TriggerEvents = TriggerEvents.Add | TriggerEvents.Update | TriggerEvents.Delete; Assert.IsTrue(target.Evaluate(maObject)); target.TriggerEvents = TriggerEvents.Update | TriggerEvents.Delete; Assert.IsTrue(target.Evaluate(maObject)); // Negative Tests target = new ObjectChangeRule(); target.TriggerEvents = TriggerEvents.Add | TriggerEvents.Delete; Assert.IsFalse(target.Evaluate(maObject)); target = new ObjectChangeRule(); target.TriggerEvents = TriggerEvents.Delete; Assert.IsFalse(target.Evaluate(maObject)); target = new ObjectChangeRule(); target.TriggerEvents = TriggerEvents.Add; Assert.IsFalse(target.Evaluate(maObject)); } finally { ActiveConfig.DB.DeleteMAObjectPermanent(newId); } }
public void TestSerialization() { RuleGroup toSeralize = new RuleGroup(); toSeralize.Operator = GroupOperator.Any; ObjectChangeRule test1 = new ObjectChangeRule(); test1.TriggerEvents = TriggerEvents.Add; toSeralize.Items.Add(test1); ObjectChangeRule test2 = new ObjectChangeRule(); test2.TriggerEvents = TriggerEvents.Delete; toSeralize.Items.Add(test2); RuleGroup deserialized = (RuleGroup)UnitTestControl.XmlSerializeRoundTrip <RuleGroup>(toSeralize); Assert.AreEqual(toSeralize.Items.Count, deserialized.Items.Count); Assert.AreEqual(toSeralize.Operator, deserialized.Operator); Assert.AreEqual(((ObjectChangeRule)deserialized.Items[0]).TriggerEvents, test1.TriggerEvents); Assert.AreEqual(((ObjectChangeRule)deserialized.Items[1]).TriggerEvents, test2.TriggerEvents); }
public ObjectChangeRuleViewModel(ObjectChangeRule model, bool canUseProposedValues) : base(model, canUseProposedValues) { this.typedModel = model; }