public void TestFromCSEntryChangeAdd()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["contact"].GetAdapterForMmsAttribute("organizations");

            ContactEntry e = new ContactEntry();

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("organizations_work_name", "myorg"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("organizations_work_department", "department"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("organizations_work_jobDescription", "jobdescription"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("organizations_work_location", "location"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("organizations_work_symbol", "symbol"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("organizations_work_title", "title"));

            schemaItem.UpdateField(x, e);
            Organization o = e.Organizations.First(t => t.Rel == "http://schemas.google.com/g/2005#work");

            Assert.AreEqual("myorg", o.Name);
            Assert.AreEqual("department", o.Department);
            Assert.AreEqual("jobdescription", o.JobDescription);
            Assert.AreEqual("location", o.Location);
            Assert.AreEqual("symbol", o.Symbol);
            Assert.AreEqual("title", o.Title);
            Assert.AreEqual(true, o.Primary);
        }
        public void TestFromCSEntryChangeUpdate()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "websites");
            CSEntryChange     x          = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;

            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("websites_home", "http://home.com"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeUpdate("websites_work", "http://work.com"));

            User ux = new User();

            ux.Websites = new List <Website>()
            {
                new Website()
                {
                    Primary = false, Type = "work", Value = "http://notwork.com"
                }
            };
            schemaItem.UpdateField(x, ux);

            Assert.AreEqual("http://work.com", ux.Websites.First(t => t.Type == "work").Value);
            Assert.AreEqual(true, ux.Websites.First(t => t.Type == "work").IsPrimary);

            Assert.AreEqual("http://home.com", ux.Websites.First(t => t.Type == "home").Value);
            Assert.AreEqual(false, ux.Websites.First(t => t.Type == "home").IsPrimary);
        }
コード例 #3
0
        public void TestToCSEntryChangeUpdate()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "orgUnitPath");

            User u = new User
            {
                OrgUnitPath = "/Test"
            };

            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 == "orgUnitPath");

            Assert.IsNotNull(change);
            Assert.AreEqual("/Test", change.GetValueAdd <string>());
            Assert.AreEqual(AttributeModificationType.Replace, change.ModificationType);
            x.AttributeChanges.Add(change);

            User ux = new User();

            schemaItem.UpdateField(x, ux);
            Assert.AreEqual("/Test", ux.OrgUnitPath);
        }
        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());
        }
コード例 #5
0
        public void TestFromCSEntryChangeDelete()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "orgUnitPath");

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;

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

            User ux = new User();

            schemaItem.UpdateField(x, ux);

            Assert.AreEqual(Constants.NullValuePlaceholder, ux.OrgUnitPath);
        }
コード例 #6
0
        public void TestFromCSEntryChangeAdd()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "orgUnitPath");

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;

            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("orgUnitPath", "/Test"));

            User ux = new User();

            schemaItem.UpdateField(x, ux);

            Assert.AreEqual("/Test", ux.OrgUnitPath);
        }
        public void TestFromCSEntryChangeAdd()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["contact"].GetAdapterForMmsAttribute("externalIds");

            ContactEntry e = new ContactEntry();

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("externalIds_work", "myorg"));

            schemaItem.UpdateField(x, e);
            ExternalId o = e.ExternalIds.First(t => t.Label == "work");

            Assert.AreEqual("myorg", o.Value);
        }
        public void TestFromCSEntryChangeAdd()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "name");

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;

            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("name_givenName", "Bob"));
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("name_familyName", "Smith"));

            User ux = new User();

            schemaItem.UpdateField(x, ux);

            Assert.AreEqual("Bob", ux.Name.GivenName);
            Assert.AreEqual("Smith", ux.Name.FamilyName);
        }
        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);
        }
        public void TestFromCSEntryChangeDelete()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "name");

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;

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

            User ux = new User();

            ux.Name.GivenName  = "Bob";
            ux.Name.FamilyName = "Smith";

            schemaItem.UpdateField(x, ux);

            Assert.AreEqual(Constants.NullValuePlaceholder, ux.Name.GivenName);
            Assert.AreEqual("Smith", ux.Name.FamilyName);
        }
        public void TestFromCSEntryChangeUpdateDeleteLastValue()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "organizations");
            CSEntryChange     x          = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Update;

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

            User ux = new User();

            ux.Organizations = new List <Organization>()
            {
                new Organization()
                {
                    Primary = true, Location = "Caulfield"
                }
            };
            schemaItem.UpdateField(x, ux);

            Assert.AreEqual(0, ux.Organizations.Count);
        }
        public void TestToCSEntryChangeUpdate()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "name");

            User u = new User
            {
                Name = new UserName
                {
                    GivenName  = "Bob",
                    FamilyName = "Smith"
                }
            };

            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 == "name_givenName");

            Assert.IsNotNull(change);
            Assert.AreEqual("Bob", change.GetValueAdd <string>());
            Assert.AreEqual(AttributeModificationType.Replace, change.ModificationType);
            x.AttributeChanges.Add(change);

            change = result.FirstOrDefault(t => t.Name == "name_familyName");
            Assert.IsNotNull(change);
            Assert.AreEqual("Smith", change.GetValueAdd <string>());
            Assert.AreEqual(AttributeModificationType.Replace, change.ModificationType);
            x.AttributeChanges.Add(change);

            User ux = new User();

            schemaItem.UpdateField(x, ux);
            Assert.AreEqual("Bob", ux.Name.GivenName);
            Assert.AreEqual("Smith", ux.Name.FamilyName);
        }
コード例 #13
0
        public void TestNotes()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "notes");

            User u = new User
            {
                Notes = new Notes
                {
                    ContentType = "text",
                    Value       = "something"
                }
            };

            IList <AttributeChange> result = schemaItem.CreateAttributeChanges(null, ObjectModificationType.Add, u).ToList();

            AttributeChange notesValue = result.FirstOrDefault(t => t.Name == "notes_value");

            Assert.IsNotNull(notesValue);
            Assert.AreEqual("something", notesValue.GetValueAdd <string>());

            AttributeChange notesType = result.FirstOrDefault(t => t.Name == "notes_contentType");

            Assert.IsNotNull(notesType);
            Assert.AreEqual("text", notesType.GetValueAdd <string>());

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;
            x.AttributeChanges.Add(result.First());
            x.AttributeChanges.Add(result.Last());

            User ux = new User();

            schemaItem.UpdateField(x, ux);
            Assert.AreEqual("something", ux.Notes.Value);
            Assert.AreEqual("text", ux.Notes.ContentType);
        }
コード例 #14
0
        public void TestAliases()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "aliases");

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

            IList <AttributeChange> result = schemaItem.CreateAttributeChanges(null, ObjectModificationType.Add, u).ToList();

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

            Assert.IsNotNull(change);
            CollectionAssert.AreEqual(new string[] { "*****@*****.**",
                                                     "*****@*****.**" }, change.GetValueAdds <string>().ToArray());


            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;
            x.AttributeChanges.Add(change);

            UserUpdateTemplate ux = new UserUpdateTemplate();

            schemaItem.UpdateField(x, ux);
            CollectionAssert.AreEqual(new string[]
            {
                "*****@*****.**",
                "*****@*****.**"
            }, ux.Aliases.ToArray());
        }
コード例 #15
0
        public void TestStandaloneAttributes()
        {
            IAttributeAdapter orgUnitPath = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "orgUnitPath");
            IAttributeAdapter includeInGlobalAddressList = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "includeInGlobalAddressList");
            IAttributeAdapter suspended = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "suspended");
            IAttributeAdapter changePasswordAtNextLogin = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "changePasswordAtNextLogin");
            IAttributeAdapter ipWhitelisted             = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "ipWhitelisted");
            IAttributeAdapter customerId   = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "customerId");
            IAttributeAdapter primaryEmail = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "primaryEmail");
            IAttributeAdapter id           = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "id");

            User u = new User
            {
                OrgUnitPath = "/Test",
                IncludeInGlobalAddressList = true,
                Suspended = true,
                ChangePasswordAtNextLogin = true,
                IpWhitelisted             = true,
                CustomerId   = "mytest",
                PrimaryEmail = "*****@*****.**",
                Id           = "testid"
            };

            CSEntryChange x = CSEntryChange.Create();

            x.ObjectModificationType = ObjectModificationType.Add;

            IList <AttributeChange> result = orgUnitPath.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            AttributeChange         change = result.FirstOrDefault(t => t.Name == "orgUnitPath");

            Assert.IsNotNull(change);
            Assert.AreEqual("/Test", change.GetValueAdd <string>());
            x.AttributeChanges.Add(result.First());

            result = includeInGlobalAddressList.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "includeInGlobalAddressList");
            Assert.IsNotNull(change);
            Assert.AreEqual(true, change.GetValueAdd <bool>());
            x.AttributeChanges.Add(result.First());

            result = suspended.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "suspended");
            Assert.IsNotNull(change);
            Assert.AreEqual(true, change.GetValueAdd <bool>());
            x.AttributeChanges.Add(result.First());

            result = changePasswordAtNextLogin.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "changePasswordAtNextLogin");
            Assert.IsNotNull(change);
            Assert.AreEqual(true, change.GetValueAdd <bool>());
            x.AttributeChanges.Add(result.First());

            result = ipWhitelisted.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "ipWhitelisted");
            Assert.IsNotNull(change);
            Assert.AreEqual(true, change.GetValueAdd <bool>());
            x.AttributeChanges.Add(result.First());

            result = customerId.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "customerId");
            Assert.IsNotNull(change);
            Assert.AreEqual("mytest", change.GetValueAdd <string>());
            x.AttributeChanges.Add(result.First());

            result = primaryEmail.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "primaryEmail");
            Assert.IsNotNull(change);
            Assert.AreEqual("*****@*****.**", change.GetValueAdd <string>());
            x.AttributeChanges.Add(result.First());

            result = id.CreateAttributeChanges(x.DN, ObjectModificationType.Add, u).ToList();
            change = result.FirstOrDefault(t => t.Name == "id");
            Assert.IsNotNull(change);
            Assert.AreEqual("testid", change.GetValueAdd <string>());
            x.AttributeChanges.Add(result.First());

            User ux = new User();

            changePasswordAtNextLogin.UpdateField(x, ux);
            suspended.UpdateField(x, ux);
            includeInGlobalAddressList.UpdateField(x, ux);
            orgUnitPath.UpdateField(x, ux);

            Assert.AreEqual(true, ux.ChangePasswordAtNextLogin);
            Assert.AreEqual(true, ux.Suspended);
            Assert.AreEqual(true, ux.IncludeInGlobalAddressList);
            Assert.AreEqual("/Test", ux.OrgUnitPath);
        }
コード例 #16
0
        public void TestWebSites()
        {
            IAttributeAdapter schemaItem = UnitTestControl.Schema["user"].AttributeAdapters.First(t => t.FieldName == "websites");

            User u = new User
            {
                Websites = new List <Website>()
                {
                    new Website()
                    {
                        Primary = true,
                        Type    = "work",
                        Value   = "http://work.com"
                    },

                    new Website()
                    {
                        Primary = false,
                        Type    = "home",
                        Value   = "http://home.com"
                    }
                }
            };

            CSEntryChange x = CSEntryChange.Create();

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

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

            Assert.IsNotNull(change);
            Assert.AreEqual("http://work.com", change.GetValueAdd <string>());
            x.AttributeChanges.Add(change);

            change = result.FirstOrDefault(t => t.Name == "websites_home");
            Assert.IsNotNull(change);
            Assert.AreEqual("http://home.com", change.GetValueAdd <string>());
            x.AttributeChanges.Add(change);

            User ux = new User();

            schemaItem.UpdateField(x, ux);
            Assert.AreEqual("http://work.com", ux.Websites.First(t => t.Type == "work").Value);
            Assert.AreEqual(true, ux.Websites.First(t => t.Type == "work").IsPrimary);
            Assert.AreEqual("http://home.com", ux.Websites.First(t => t.Type == "home").Value);
            Assert.AreEqual(false, ux.Websites.First(t => t.Type == "home").IsPrimary);

            x = CSEntryChange.Create();
            x.ObjectModificationType = ObjectModificationType.Update;

            change = result.FirstOrDefault(t => t.Name == "websites_home");
            x.AttributeChanges.Remove(change);
            x.AttributeChanges.Add(AttributeChange.CreateAttributeDelete("websites_home"));
            schemaItem.UpdateField(x, ux);

            x = CSEntryChange.Create();
            x.ObjectModificationType = ObjectModificationType.Update;

            change = result.FirstOrDefault(t => t.Name == "websites_other");
            x.AttributeChanges.Remove(change);
            x.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("websites_other", "http://other.com"));
            schemaItem.UpdateField(x, ux);
        }