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); }
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()); }
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); }
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); }
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); }
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()); }
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); }
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); }