public void AttributeMetatadaCollection_Serialization() { // TODO: Split into more tests. var collection1 = new AttributeMetadataCollection(); Assert.AreEqual(collection1.Count, 0); collection1.Update(123, Guid.NewGuid(), DateTime.Now, 100); collection1.Update(321, Guid.NewGuid(), DateTime.Now, 200); Assert.AreEqual(collection1.Count, 2); byte[] buffer1 = collection1.ToByteArray(); int size1 = buffer1.Length; var collection2 = new AttributeMetadataCollection(buffer1); Assert.AreEqual(collection1.Count, collection2.Count); Assert.AreEqual(collection1.ToString(), collection2.ToString()); }
public void AttributeMetatadaCollection_Serialization() { // Create an empty collection var collection1 = new AttributeMetadataCollection(); // Add new elements collection1.Update(CommonDirectoryAttributes.SupplementalCredentialsId, Guid.NewGuid(), DateTime.Now, 100); collection1.Update(CommonDirectoryAttributes.UserAccountControlId, Guid.NewGuid(), DateTime.Now, 200); Assert.AreEqual(2, collection1.Count); // Serialize byte[] buffer1 = collection1.ToByteArray(); // Deserialize var collection2 = new AttributeMetadataCollection(buffer1); Assert.AreEqual(collection1.Count, collection2.Count); Assert.AreEqual(collection1.Unknown, collection2.Unknown); Assert.AreEqual(collection1.ToString(), collection2.ToString()); }
public void AttributeMetatadaCollection_Update() { // Prepare the common values Guid invocationId = Guid.NewGuid(); DateTime now = DateTime.Now; int usn = 33729; // Add some unique entries in sorted order var metadata = new AttributeMetadataCollection(); metadata.Update(CommonDirectoryAttributes.ObjectClassId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.SurnameId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.GivenNameId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.InstanceTypeId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.DisplayNameId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.UserAccountControlId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.LMHashId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.ObjectSidId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.LMHashHistoryId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.SAMAccountNameId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.SamAccountTypeId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.UserPrincipalNameId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.ObjectCategoryId, invocationId, now, usn); metadata.Update(CommonDirectoryAttributes.PKIRoamingTimeStampId, invocationId, now, usn); Assert.AreEqual(14, metadata.Count); // Modify an existing attribute metadata.Update(CommonDirectoryAttributes.UserAccountControlId, invocationId, now, ++usn); Assert.AreEqual(14, metadata.Count); // Add a new attribute metadata.Update(CommonDirectoryAttributes.SupplementalCredentialsId, invocationId, now, ++usn); Assert.AreEqual(15, metadata.Count); // Check the order and uniqueness of attribute ids var attributeIds = metadata.Attributes; CollectionAssert.AllItemsAreUnique(attributeIds.ToArray()); CollectionAssert.AreEqual(attributeIds.OrderBy(item => item).ToArray(), attributeIds.ToArray()); }