예제 #1
0
        public void HeaderMapping()
        {
            var          content           = new Foo();
            const String messageId         = "one-id";
            const Int64  timestamp         = 123456789L;
            const String replyExchangeType = "direct";
            const String replyExchangeName = "exchange-name";
            const String replyRoutingKey   = "routing-key";
            const String correlationId     = "one-correlation-id";
            var          replyTo           = $"{replyExchangeType}://{replyExchangeName}/{replyRoutingKey}";

            var args = new BasicDeliverEventArgs
            {
                BasicProperties = new BasicProperties
                {
                    MessageId     = messageId,
                    Timestamp     = new AmqpTimestamp(timestamp),
                    CorrelationId = correlationId,
                    ReplyTo       = replyTo
                }
            };
            var message = new FakeConsumedMessage(content, args);
            var actual  = message.To <Foo>();

            Assert.Equal(messageId, actual.Headers.MessageId);
            Assert.Equal(timestamp, actual.Headers.Timestamp);
            Assert.Equal(correlationId, actual.Headers.CorrelationId);
            Assert.Equal(replyTo, actual.Headers.ReplyConfiguration.ToString());
        }
예제 #2
0
        public void WrongContentType()
        {
            var content = new Foo();
            var message = new FakeConsumedMessage(content, FakeBasicDeliverEventArgs());

            Assert.Throws <InvalidCastException>(() => message.To <Bar>());
        }
예제 #3
0
        public void ProperContentType()
        {
            var content = new Foo();
            var message = new FakeConsumedMessage(content, FakeBasicDeliverEventArgs());
            var actual  = message.To <Foo>();

            Assert.Equal(content, actual.Content);
        }
예제 #4
0
        public void ConsumerTag()
        {
            var          content     = new Foo();
            const String consumerTag = "one-tag";
            var          args        = new BasicDeliverEventArgs
            {
                ConsumerTag     = consumerTag,
                BasicProperties = new BasicProperties()
            };
            var message = new FakeConsumedMessage(content, args);
            var actual  = message.To <Foo>();

            Assert.Equal(consumerTag, actual.ConsumerTag);
        }
예제 #5
0
        public void CustomHeader()
        {
            var content = new Foo();
            var args    = new BasicDeliverEventArgs
            {
                BasicProperties = new BasicProperties
                {
                    Headers = new Dictionary <String, Object>
                    {
                        { "a", "b" }
                    }
                }
            };
            var message = new FakeConsumedMessage(content, args);
            var actual  = message.To <Foo>();

            Assert.Equal("b", actual.Headers["a"]);
        }
예제 #6
0
        public void CustomHeader()
        {
            var key     = "a";
            var value   = "b";
            var content = new Foo();
            var args    = new BasicDeliverEventArgs
            {
                BasicProperties = new BasicProperties
                {
                    Headers = new Dictionary <String, Object>
                    {
                        { key, value }
                    }
                }
            };
            var message = new FakeConsumedMessage(content, args);

            var actual = message.To <Foo>();

            Assert.True(actual.ContainsHeader(key));
            Assert.Equal(value, actual.Headers[key]);
        }