public void TestToCSEntryChangeUpdate()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "aliases");

            UserUpdateTemplate u = new UserUpdateTemplate
            {
                Aliases = new List <string>()
                {
                    "*****@*****.**",
                    "*****@*****.**"
                }
            };

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;
            IList <AttributeChange> result = schemaItem.CreateAttributeChanges(x.DN, x.ObjectModificationType, u).ToList();

            AttributeChange change = result.FirstOrDefault(t => t.Name == "aliases");

            Assert.IsNotNull(change);
            CollectionAssert.AreEqual(new string[] { "*****@*****.**",
                                                     "*****@*****.**" }, change.GetValueAdds <string>().ToArray());
            Assert.AreEqual(AttributeModificationType.Replace, change.ModificationType);
        }
        public void TestFromCSEntryChangeUpdate()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "aliases");

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;

            List <ValueChange> changes = new List <ValueChange>();

            changes.Add(ValueChange.CreateValueAdd("*****@*****.**"));
            changes.Add(ValueChange.CreateValueDelete("*****@*****.**"));

            x.AttributeChanges.Add(AttributeChange.CreateAttributeUpdate("aliases", changes));

            UserUpdateTemplate ux = new UserUpdateTemplate();

            ux.Aliases = new List <string>()
            {
                "*****@*****.**", "*****@*****.**"
            };
            schemaItem.UpdateField(x, ux);

            CollectionAssert.AreEqual(new string[] { "*****@*****.**",
                                                     "*****@*****.**" }, ux.Aliases.ToArray());
        }
        public void TestFromCSEntryChangeDelete()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "aliases");

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;

            x.AttributeChanges.Add(AttributeChange.CreateAttributeDelete("aliases"));

            UserUpdateTemplate ux = new UserUpdateTemplate();

            ux.Aliases = new List <string>()
            {
                "*****@*****.**", "*****@*****.**"
            };
            schemaItem.UpdateField(x, ux);

            Assert.AreEqual(0, ux.Aliases.Count);
        }