public void Can_serialize_custom_element_with_non_custom_element()
		{
			var serializer = container.Resolve<IMessageSerializer>();
			var message1 = new NoDataContract {Value = "test"};
			var message2 = new DataContractMessage {Message = "test2"};
			message2.ContractMessage = message2;
			var memoryStream = new MemoryStream();
			serializer.Serialize(new object[]{message1, message2}, memoryStream);
			memoryStream.Position = 0;
			var messages = serializer.Deserialize(memoryStream);
			var dataContractMessage = messages[1] as DataContractMessage;
			Assert.NotNull(dataContractMessage);
			Assert.Same(dataContractMessage, dataContractMessage.ContractMessage);
		}
        public void Can_serialize_custom_element_with_non_custom_element()
        {
            var serializer = container.Resolve <IMessageSerializer>();
            var message1   = new NoDataContract {
                Value = "test"
            };
            var message2 = new DataContractMessage {
                Message = "test2"
            };

            message2.ContractMessage = message2;
            var memoryStream = new MemoryStream();

            serializer.Serialize(new object[] { message1, message2 }, memoryStream);
            memoryStream.Position = 0;
            var messages            = serializer.Deserialize(memoryStream);
            var dataContractMessage = messages[1] as DataContractMessage;

            Assert.NotNull(dataContractMessage);
            Assert.Same(dataContractMessage, dataContractMessage.ContractMessage);
        }