public ICollection<String> GetDefaultAttributesToGet(ObjectClass oclass) { ICollection<string> attributesToGet = new HashSet<String>(); ActiveDirectoryConnector connector = new ActiveDirectoryConnector(); connector.Init(ConfigHelper.GetConfiguration()); Schema schema = connector.Schema(); ObjectClassInfo ocInfo = schema.FindObjectClassInfo(oclass.GetObjectClassValue()); Assert.IsNotNull(ocInfo); foreach (ConnectorAttributeInfo caInfo in ocInfo.ConnectorAttributeInfos) { if (caInfo.IsReturnedByDefault) { attributesToGet.Add(caInfo.Name); } } return attributesToGet; }
public void TestSchema() { ActiveDirectoryConnector connector = new ActiveDirectoryConnector(); connector.Init(ConfigHelper.GetConfiguration()); Schema schema = connector.Schema(); Boolean foundOptionalAttributes = false; Boolean foundOperationalAttributes = false; // just a very high level check of things. Should have 3 ObjectClassInfos, // (group, account, and organizationalUnit) and nothing contained in them // should be null. Group and account should have some operational // attributes Assert.AreEqual(3, schema.ObjectClassInfo.Count); foreach (ObjectClassInfo ocInfo in schema.ObjectClassInfo) { Assert.IsNotNull(ocInfo); Assert.That((ocInfo.ObjectType == ObjectClass.ACCOUNT.GetObjectClassValue()) || (ocInfo.ObjectType == ActiveDirectoryConnector.OBJECTCLASS_GROUP) || (ocInfo.ObjectType == ActiveDirectoryConnector.OBJECTCLASS_OU)); Trace.WriteLine("****** " + ocInfo.ObjectType); // skip this for organizational unit ... it doesnt really have this if (ocInfo.ObjectType.Equals(ActiveDirectoryConnector.ouObjectClass)) { continue; } foreach (ConnectorAttributeInfo caInfo in ocInfo.ConnectorAttributeInfos) { Assert.IsNotNull(caInfo); Trace.WriteLine(String.Format("{0} {1} {2} {3}", caInfo.Name, caInfo.IsCreatable ? "createable" : "", caInfo.IsUpdateable ? "updateable" : "", caInfo.IsRequired ? "required" : "", caInfo.IsMultiValued ? "multivalue" : "")); if (ConnectorAttributeUtil.IsSpecial(caInfo)) { foundOperationalAttributes = true; } else { if (!caInfo.IsRequired) { foundOptionalAttributes = true; } } } Assert.That(foundOperationalAttributes && foundOptionalAttributes); } }