Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 public ObjectChangeRuleViewModel(ObjectChangeRule model, bool canUseProposedValues)
     : base(model, canUseProposedValues)
 {
     this.typedModel = model;
 }