public void The_xml_message_serializer_should_rock_the_house()
        {
            byte[] serializedMessageData;

            var serializer = new XmlMessageSerializer();

            OutboundMessage.Set(x =>
            {
                x.SetSourceAddress("msmq://localhost/queue_name");
                x.SetDestinationAddress("msmq://remotehost/queue_name");
                x.SetResponseAddress("msmq://localhost/response_queue");
                x.SetFaultAddress("msmq://localhost/fault_queue");
                x.SetRetryCount(7);
            });

            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, _message);

                serializedMessageData = output.ToArray();

                Trace.WriteLine(Encoding.UTF8.GetString(serializedMessageData));
            }

            using (MemoryStream input = new MemoryStream(serializedMessageData))
            {
                SerializationTestMessage receivedMessage = serializer.Deserialize(input) as SerializationTestMessage;

                Assert.AreEqual(_message, receivedMessage);
            }
        }
예제 #2
0
        public void Just_how_fast_are_you()
        {
            var message = new SerializationTestMessage
            {
                DecimalValue  = 123.45m,
                LongValue     = 098123213,
                BoolValue     = true,
                ByteValue     = 127,
                IntValue      = 123,
                DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                TimeSpanValue = TimeSpan.FromSeconds(30),
                GuidValue     = Guid.NewGuid(),
                StringValue   = "Chris's Sample Code",
                DoubleValue   = 1823.172
            };

            var            sendContext    = new MessageSendContext <SerializationTestMessage>(message);
            ReceiveContext receiveContext = null;

            //warm it up
            for (var i = 0; i < 10; i++)
            {
                byte[] data = Serialize(sendContext);

                var transportMessage = new InMemoryTransportMessage(Guid.NewGuid(), data, Serializer.ContentType.MediaType,
                                                                    TypeMetadataCache <SerializationTestMessage> .ShortName);
                receiveContext = new InMemoryReceiveContext(transportMessage, TestConsumeContext.GetContext());

                Deserialize <SerializationTestMessage>(receiveContext);
            }

            var timer = Stopwatch.StartNew();

            const int iterations = 50000;

            for (var i = 0; i < iterations; i++)
            {
                Serialize(sendContext);
            }

            timer.Stop();

            var perSecond = iterations * 1000 / timer.ElapsedMilliseconds;

            Console.WriteLine("Serialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);


            timer = Stopwatch.StartNew();

            for (var i = 0; i < 50000; i++)
            {
                Deserialize <SerializationTestMessage>(receiveContext);
            }

            timer.Stop();

            perSecond = iterations * 1000 / timer.ElapsedMilliseconds;

            Console.WriteLine("Deserialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);
        }
 public void SetupContext()
 {
     _message = new SerializationTestMessage
     {
         DecimalValue  = 123.45m,
         LongValue     = 098123213,
         BoolValue     = true,
         ByteValue     = 127,
         IntValue      = 123,
         DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
         TimeSpanValue = 30.Seconds(),
         GuidValue     = new Guid("B00C3BD0-3CE9-4B14-9EC6-E7348084EF1F"),
         StringValue   = "Chris's Sample Code",
         DoubleValue   = 1823.172,
     };
 }
 public void SetupContext()
 {
     _message = new SerializationTestMessage
                {
                    DecimalValue = 123.45m,
                    LongValue = 098123213,
                    BoolValue = true,
                    ByteValue = 127,
                    IntValue = 123,
                    DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                    TimeSpanValue = 30.Seconds(),
                    GuidValue = new Guid("B00C3BD0-3CE9-4B14-9EC6-E7348084EF1F"),
                    StringValue = "Chris's Sample Code",
                    DoubleValue = 1823.172,
                };
 }
 public GivenAComplexMessage()
 {
     Message = new SerializationTestMessage
     {
         DecimalValue  = 123.45m,
         LongValue     = 098123213,
         BoolValue     = true,
         ByteValue     = 127,
         IntValue      = 123,
         DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
         TimeSpanValue = 30.Seconds(),
         GuidValue     = Guid.NewGuid(),
         StringValue   = "Chris's Sample Code",
         DoubleValue   = 1823.172,
         MaybeMoney    = 567.89m,
     };
 }
        public void SetupContext()
        {
        	_message = new SerializationTestMessage
        		{
        			DecimalValue = 123.45m,
        			LongValue = 098123213,
        			BoolValue = true,
        			ByteValue = 127,
        			IntValue = 123,
        			DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
        			TimeSpanValue = 30.Seconds(),
                    GuidValue = Guid.NewGuid(),
                    StringValue = "Chris's Sample Code",
                    DoubleValue = 1823.172,
					MaybeMoney = 567.89m,
                };
        }
예제 #7
0
        public void A_fully_loaded_object_should_be_serialized()
        {
            var message = new SerializationTestMessage
            {
                DecimalValue  = 123.45m,
                LongValue     = 098123213,
                BoolValue     = true,
                ByteValue     = 127,
                IntValue      = 123,
                DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                TimeSpanValue = 30.Seconds(),
                GuidValue     = Guid.NewGuid(),
                StringValue   = "Chris's Sample Code",
                DoubleValue   = 1823.172,
            };

            TestSerialization(message);
        }
예제 #8
0
        public void Serialize_complex()
        {
            Message = new SerializationTestMessage
            {
                DecimalValue  = 123.45m,
                LongValue     = 098123213,
                BoolValue     = true,
                ByteValue     = 127,
                IntValue      = 123,
                DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                TimeSpanValue = TimeSpan.FromSeconds(30),
                GuidValue     = Guid.NewGuid(),
                StringValue   = "Chris's Sample Code",
                DoubleValue   = 1823.172,
                MaybeMoney    = 567.89m
            };

            TestSerialization(Message);
        }
예제 #9
0
        public void Fault_Messages_should_be_properly_serialized()
        {
            var message = new SerializationTestMessage
            {
                DecimalValue  = 123.45m,
                LongValue     = 098123213,
                BoolValue     = true,
                ByteValue     = 127,
                IntValue      = 123,
                DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                TimeSpanValue = 30.Seconds(),
                GuidValue     = Guid.NewGuid(),
                StringValue   = "Chris's Sample Code",
                DoubleValue   = 1823.172,
            };

            var faltMessage = new Fault <SerializationTestMessage>(message, new System.Net.Mail.SmtpException("Crap!"));

            TestSerialization(faltMessage);
        }
        public void The_binary_formatter_should_make_mouths_happy()
        {
            byte[] serializedMessageData;

            IMessageSerializer serializer = new BinaryMessageSerializer();

            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, _message);

                serializedMessageData = output.ToArray();
            }

            using (MemoryStream input = new MemoryStream(serializedMessageData))
            {
                SerializationTestMessage receivedMessage = serializer.Deserialize(input) as SerializationTestMessage;

                Assert.AreEqual(_message, receivedMessage);
            }
        }
        public void The_xml_serializer_should_be_awesome()
        {
            byte[] serializedMessageData;

            var serializer = new DotNotXmlMessageSerializer();

            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, _message);

                serializedMessageData = output.ToArray();

                Trace.WriteLine(Encoding.UTF8.GetString(serializedMessageData));
            }

            using (MemoryStream input = new MemoryStream(serializedMessageData))
            {
                SerializationTestMessage receivedMessage = serializer.Deserialize(input) as SerializationTestMessage;

                Assert.AreEqual(_message, receivedMessage);
            }
        }
예제 #12
0
        public void Just_how_fast_are_you()
        {
            Trace.WriteLine("Serializer: " + typeof(TSerializer).Name);
            var message = new SerializationTestMessage
            {
                DecimalValue  = 123.45m,
                LongValue     = 098123213,
                BoolValue     = true,
                ByteValue     = 127,
                IntValue      = 123,
                DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                TimeSpanValue = 30.Seconds(),
                GuidValue     = Guid.NewGuid(),
                StringValue   = "Chris's Sample Code",
                DoubleValue   = 1823.172,
            };


            var serializer = new TSerializer();

            //warm it up
            for (int i = 0; i < 10; i++)
            {
                byte[] data;
                using (var output = new MemoryStream())
                {
                    serializer.Serialize(output, message.ToSendContext());
                    data = output.ToArray();
                }
                using (var input = new MemoryStream(data))
                {
                    serializer.Deserialize(ReceiveContext.FromBodyStream(input));
                }
            }

            Stopwatch timer = Stopwatch.StartNew();

            const int iterations = 50000;

            for (int i = 0; i < iterations; i++)
            {
                using (var output = new MemoryStream())
                {
                    serializer.Serialize(output, message.ToSendContext());
                }
            }

            timer.Stop();

            long perSecond = iterations * 1000 / timer.ElapsedMilliseconds;

            var msg = string.Format("Serialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);

            Trace.WriteLine(msg);

            byte[] sample;
            using (var output = new MemoryStream())
            {
                serializer.Serialize(output, message.ToSendContext());
                sample = output.ToArray();
            }

            timer = Stopwatch.StartNew();

            for (int i = 0; i < 50000; i++)
            {
                using (var input = new MemoryStream(sample))
                {
                    serializer.Deserialize(ReceiveContext.FromBodyStream(input));
                }
            }

            timer.Stop();

            perSecond = iterations * 1000 / timer.ElapsedMilliseconds;

            msg = string.Format("Deserialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);
            Trace.WriteLine(msg);
        }
예제 #13
0
		public void Just_how_fast_is_the_custom_xml_serializer()
		{
			var message = new SerializationTestMessage
				{
					DecimalValue = 123.45m,
					LongValue = 098123213,
					BoolValue = true,
					ByteValue = 127,
					IntValue = 123,
					DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
					TimeSpanValue = 30.Seconds(),
					GuidValue = Guid.NewGuid(),
					StringValue = "Chris's Sample Code",
					DoubleValue = 1823.172,
				};

//			var message = new PingMessage
//				{
//					CorrelationId = CombGuid.Generate()
//				};

			var serializer = new XmlMessageSerializer();

			for (int i = 0; i < 10; i++)
			{
				byte[] data;
				using (MemoryStream output = new MemoryStream())
				{
					serializer.Serialize(output, message);
					data = output.ToArray();
				}
				using (MemoryStream input = new MemoryStream(data))
				{
					//		serializer.Deserialize(input);
				}
			}

			Stopwatch timer = Stopwatch.StartNew();

			const int iterations = 50000;

			for (int i = 0; i < iterations; i++)
			{
				using (MemoryStream output = new MemoryStream())
				{
					serializer.Serialize(output, message);
				}
			}

			timer.Stop();

			long perSecond = iterations*1000/timer.ElapsedMilliseconds;

			var msg = string.Format("Serialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);
			Trace.WriteLine(msg);

			byte[] sample;
			using (MemoryStream output = new MemoryStream())
			{
				serializer.Serialize(output, message);
				sample = output.ToArray();
			}

			timer = Stopwatch.StartNew();

			for (int i = 0; i < 50000; i++)
			{
				using (MemoryStream input = new MemoryStream(sample))
				{
					serializer.Deserialize(input);
				}
			}

			timer.Stop();

			perSecond = iterations*1000/timer.ElapsedMilliseconds;

			msg = string.Format("Deserialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);
			Trace.WriteLine(msg);
		}
예제 #14
0
        public void Just_how_fast_is_the_custom_xml_serializer()
        {
            var message = new SerializationTestMessage
            {
                DecimalValue  = 123.45m,
                LongValue     = 098123213,
                BoolValue     = true,
                ByteValue     = 127,
                IntValue      = 123,
                DateTimeValue = new DateTime(2008, 9, 8, 7, 6, 5, 4),
                TimeSpanValue = 30.Seconds(),
                GuidValue     = Guid.NewGuid(),
                StringValue   = "Chris's Sample Code",
                DoubleValue   = 1823.172,
            };

//			var message = new PingMessage
//				{
//					CorrelationId = CombGuid.Generate()
//				};

            var serializer = new XmlMessageSerializer();

            for (int i = 0; i < 10; i++)
            {
                byte[] data;
                using (MemoryStream output = new MemoryStream())
                {
                    serializer.Serialize(output, message);
                    data = output.ToArray();
                }
                using (MemoryStream input = new MemoryStream(data))
                {
                    //		serializer.Deserialize(input);
                }
            }

            Stopwatch timer = Stopwatch.StartNew();

            const int iterations = 50000;

            for (int i = 0; i < iterations; i++)
            {
                using (MemoryStream output = new MemoryStream())
                {
                    serializer.Serialize(output, message);
                }
            }

            timer.Stop();

            long perSecond = iterations * 1000 / timer.ElapsedMilliseconds;

            var msg = string.Format("Serialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);

            Trace.WriteLine(msg);

            byte[] sample;
            using (MemoryStream output = new MemoryStream())
            {
                serializer.Serialize(output, message);
                sample = output.ToArray();
            }

            timer = Stopwatch.StartNew();

            for (int i = 0; i < 50000; i++)
            {
                using (MemoryStream input = new MemoryStream(sample))
                {
                    serializer.Deserialize(input);
                }
            }

            timer.Stop();

            perSecond = iterations * 1000 / timer.ElapsedMilliseconds;

            msg = string.Format("Deserialize: {0}ms, Rate: {1} m/s", timer.ElapsedMilliseconds, perSecond);
            Trace.WriteLine(msg);
        }