/// <summary> /// Verifies that the attributes stored in an extension match what is expected. Asserts will be raised for any /// differences. /// </summary> /// <param name="expected">The attributes that are expected to be present.</param> /// <param name="actual">The extension that contains the actual attributes.</param> private void VerifyAttributes(List<IExtensionAttribute> expected, IExtension actual) { if (expected == null) { Assert.IsFalse(actual.HasAttributes, "HasAttributes is incorrect."); Assert.IsNull(actual.GetAttributes(), "Attributes should be null."); } else { IEnumerable<IExtensionAttribute> attributes; IList<IExtensionAttribute> attributesList; attributes = actual.GetAttributes(); Assert.IsTrue(actual.HasAttributes, "HasAttributes is incorrect."); Assert.IsNotNull(attributes, "Attributes should not be null."); attributesList = attributes.ToList(); Assert.AreEqual(expected.Count, attributesList.Count, "Attributes Count is incorrect."); for (int i = 0; i < expected.Count; i++) { Assert.AreEqual(expected[i].LocalName, attributesList[i].LocalName, "Attribute[{0}] Name is incorrect.", i); Assert.AreEqual(expected[i].Namespace, attributesList[i].Namespace, "Attribute[{0}] Namespace is incorrect.", i); Assert.AreEqual(expected[i].Value, attributesList[i].Value, "Attribute[{0}] Value is incorrect.", i); } } }