public void SerializedXACMLPolicy_ShouldBeEqual() { XmlDocument policyDocument = new XmlDocument(); policyDocument.Load(Path.Combine(GetAltinnAppsPath(), "AltinnApps0001Policy.xml")); XacmlPolicy originalPolicy; using (XmlReader reader = XmlReader.Create(new StringReader(policyDocument.OuterXml))) { originalPolicy = XacmlParser.ParseXacmlPolicy(reader); } MemoryStream dataStream = new MemoryStream(); XmlWriter writer = XmlWriter.Create(dataStream); XacmlSerializer.WritePolicy(writer, originalPolicy); writer.Flush(); dataStream.Position = 0; XacmlPolicy serializedPolicy; using (XmlReader reader = XmlReader.Create(dataStream)) { serializedPolicy = XacmlParser.ParseXacmlPolicy(reader); } AssertionUtil.AssertPolicyEqual(originalPolicy, serializedPolicy); }
/// <summary> /// Serializes the XacmlPolicy <see cref="XacmlPolicy"/> to Xml and returns it as a Memory stream /// </summary> /// <param name="policy">The XacmlPolicy model to serialize to a memory stream</param> /// <returns>MemoryStream of the Xml serialized policy</returns> public static MemoryStream GetXmlMemoryStreamFromXacmlPolicy(XacmlPolicy policy) { MemoryStream stream = new MemoryStream(); XmlWriter writer = XmlWriter.Create(stream); XacmlSerializer.WritePolicy(writer, policy); writer.Flush(); stream.Position = 0; return(stream); }
public void SerializeXACMLPolicy_ShouldBeUnequal() { XmlDocument policyDocument = new XmlDocument(); policyDocument.Load(Path.Combine(GetAltinnAppsPath(), "AltinnApps0001Policy.xml")); XacmlPolicy originalPolicy; using (XmlReader reader = XmlReader.Create(new StringReader(policyDocument.OuterXml))) { originalPolicy = XacmlParser.ParseXacmlPolicy(reader); } MemoryStream dataStream = new MemoryStream(); XmlWriter writer = XmlWriter.Create(dataStream); XacmlSerializer.WritePolicy(writer, originalPolicy); writer.Flush(); dataStream.Position = 0; XacmlPolicy serializedPolicy; using (XmlReader reader = XmlReader.Create(dataStream)) { serializedPolicy = XacmlParser.ParseXacmlPolicy(reader); } // Change a bottom node value on serialized policy model to verify that Assertion should fail string originalAttributeValue = originalPolicy.Rules.First().Target.AnyOf.First().AllOf.First().Matches.First().AttributeValue.Value; string actualAttributeValue = "THIS IS NOT THE VALUE YOU ARE LOOKING FOR"; serializedPolicy.Rules.First().Target.AnyOf.First().AllOf.First().Matches.First().AttributeValue.Value = actualAttributeValue; try { AssertionUtil.AssertPolicyEqual(originalPolicy, serializedPolicy); } catch (EqualException e) { Assert.Equal(e.Expected, originalAttributeValue); Assert.Equal(e.Actual, actualAttributeValue); } }