public void WriteXml(XmlWriter xml) { if (xml == null) { throw new ArgumentNullException("xml"); } XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); namespaces.Add("", ""); foreach (var kvp in this) { var key = kvp.Value.GetType().Name; if (Types.ContainsKey(key)) { TypeValue valueType = Types[key]; valueType.Serialize(xml, kvp.Value, namespaces); } else { throw new KeyNotFoundException("No serializer key for the '" + key + "' type."); } } }
public void WhenSerializeAndDefaultStrategy() { var req1 = new SecretAgent { Id = "007", Name = "Bond. James Bond" }; var val1 = new TypeValue <SecretAgent>(req1, null); var res1 = val1.Serialize().Value; res1.Should().NotBeNull(); res1.Should().Be("{\"Name\":\"Bond. James Bond\",\"Id\":\"007\"}"); }
public void WhenSerializeAndSuppliedStrategy() { var mockRequest = new SecretAgent { Id = "007", Name = "Bond. James Bond" }; var mockResponse = "{\"Name\":\"Bond. James Bond\",\"Id\":\"007\"}"; var mockStrategy = new Mock <ISerializationStrategy>(); mockStrategy.Setup(m => m.Serialize <SecretAgent>(mockRequest)).Returns(mockResponse); var opt = new SerializationOptions { Serialization = mockStrategy.Object }; var req1 = mockRequest; var val1 = new TypeValue <SecretAgent>(req1, opt); var res1 = val1.Serialize().Value; res1.Should().NotBeNull(); res1.Should().Be(mockResponse); mockStrategy.Verify(m => m.Serialize(req1), Times.Once); }