public void ComplicatedMessageDeserializationTest()
        {
            var xml = @"<ComplicatedMessage>
                  <Lookup>
                    <Element>
                      <Key>1</Key>
                      <Value>A</Value>
                    </Element>
                    <Element>
                      <Key>2</Key>
                      <Value>B</Value>
                    </Element>
                  </Lookup>
                  <Things>
                    <Element>C</Element>
                    <Element>D</Element>
                  </Things>
                </ComplicatedMessage>";

            var target = new SimpleXmlMessageSerializaion()
            {
                MessageTypes = new[] { typeof(ComplicatedMessage) }
            };
            
            var result = target.Deserialize(xml) as ComplicatedMessage;
            Assert.AreEqual("A", result.Lookup[1]);
            Assert.AreEqual("B", result.Lookup[2]);
            Assert.AreEqual("C", result.Things[0]);
            Assert.AreEqual("D", result.Things[1]);
        }
 public void DeserializeMessage()
 {
     var xml = @"<MessageA><Name>ABC</Name><Duration>1</Duration></MessageA>";
     var target = new SimpleXmlMessageSerializaion() { MessageTypes = new[] { typeof(MessageA) } };
     var result = target.Deserialize(xml);
     Assert.IsInstanceOf<MessageA>(result);
     Assert.AreEqual("ABC", (result as MessageA).Name);
     Assert.AreEqual(1, (result as MessageA).Duration);
 }
 public void DeserializeMissingTypeMessage()
 {
     var xml = @"<MessageB></MessageB>";
     var target = new SimpleXmlMessageSerializaion() { MessageTypes = new[] { typeof(MessageA) } };
     var result = target.Deserialize(xml);
     Assert.IsInstanceOf<MissingMessage>(result);
 }