public AttributeChangeRuleViewModel(AttributeChangeRule model, bool canUseProposedValues)
            : base(model, canUseProposedValues)
        {
            this.typedModel = model;

            this.ValidatePropertyChange("TriggerEvents");
            this.ValidatePropertyChange("Attribute");
        }
示例#2
0
        public void TestSerialization()
        {
            ObjectClassScopeProviderForTest provider   = new ObjectClassScopeProviderForTest("person");
            AttributeChangeRule             toSeralize = new AttributeChangeRule();

            toSeralize.ObjectClassScopeProvider = provider;
            toSeralize.Attribute     = ActiveConfig.DB.GetAttribute("sn");
            toSeralize.TriggerEvents = TriggerEvents.Add | TriggerEvents.Delete;

            AttributeChangeRule deserialized = (AttributeChangeRule)UnitTestControl.XmlSerializeRoundTrip <AttributeChangeRule>(toSeralize);

            deserialized.ObjectClassScopeProvider = provider;
            Assert.AreEqual(toSeralize.Attribute, deserialized.Attribute);
            Assert.AreEqual(toSeralize.TriggerEvents, deserialized.TriggerEvents);
            Assert.IsTrue(deserialized.ErrorCount == 0);
        }
示例#3
0
        public void EvaluateOnNoAttributeChange()
        {
            Guid newId = Guid.NewGuid();

            try
            {
                MAObjectHologram maObject = ActiveConfig.DB.CreateMAObject(newId, "person");
                maObject.CommitCSEntryChange();

                CSEntryChange csentry = CSEntryChange.Create();
                csentry.DN = maObject.ObjectID.ToString();
                csentry.ObjectModificationType = ObjectModificationType.Update;
                csentry.ObjectType             = maObject.ObjectClass.Name;

                // Positive Tests
                AttributeChangeRule target = new AttributeChangeRule();
                target.Attribute     = ActiveConfig.DB.GetAttribute("accountName");
                target.TriggerEvents = TriggerEvents.None;
                bool actual = target.Evaluate(maObject);
                Assert.IsTrue(actual);


                // Negative Tests
                csentry.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("accountName", "mytestvalue"));
                maObject.AttachCSEntryChange(csentry);

                target               = new AttributeChangeRule();
                target.Attribute     = ActiveConfig.DB.GetAttribute("accountName");
                target.TriggerEvents = TriggerEvents.None;
                actual               = target.Evaluate(maObject);
                Assert.IsFalse(actual);
            }
            finally
            {
                ActiveConfig.DB.DeleteMAObjectPermanent(newId);
            }
        }