public void AwsMessagePublisherTests_Publish()
        {
            Mock <ISnsClient> mockClient = new Mock <ISnsClient>(MockBehavior.Strict);

            mockClient.Setup(x => x.Publish(It.IsAny <string>(), It.IsAny <Type>(), It.IsAny <Dictionary <string, string> >()));
            AwsMessagePublisher publisher = new AwsMessagePublisher(mockClient.Object, _mockLogger.Object);

            publisher.Publish("test message", typeof(TestMessage));
            mockClient.Verify(x => x.Publish("test message", typeof(TestMessage), It.IsAny <Dictionary <string, string> >()), Times.Once());
            _mockLogger.Verify(x => x.OutboundLogMessage(It.IsAny <string>(), It.IsAny <string>()), Times.Once());
        }
 public void AwsMessagePublisherTests_SetupMessagesForPublishing_NoPublicPublish_ThrowsException()
 {
     try
     {
         AwsMessagePublisher publisher = new AwsMessagePublisher(_mockLogger.Object);
         publisher.SetupMessagesForPublishing(new Type[] { typeof(TestMessage) });
         Assert.Fail();
     }
     catch (JungleBusException ex)
     {
         Assert.AreEqual("Public publishing is disabled", ex.Message);
     }
 }
 public void AwsMessagePublisherTests_Publish_NoPublicPublish_ThrowsException()
 {
     try
     {
         AwsMessagePublisher publisher = new AwsMessagePublisher(_mockLogger.Object);
         publisher.Publish("string", typeof(TestMessage));
         Assert.Fail();
     }
     catch (JungleBusException ex)
     {
         Assert.AreEqual("Public publishing is disabled", ex.Message);
     }
 }
        public void AwsMessagePublisherTests_Send()
        {
            Mock <IMessageQueue> mockQueue = new Mock <IMessageQueue>(MockBehavior.Strict);
            string sentMessage             = null;

            mockQueue.Setup(x => x.AddMessage(It.IsAny <string>())).Callback <string>(x => sentMessage = x);

            AwsMessagePublisher publisher = new AwsMessagePublisher(_mockLogger.Object);

            publisher.Send("message body", typeof(TestMessage), mockQueue.Object);
            mockQueue.Verify(x => x.AddMessage(It.IsAny <string>()), Times.Once());
            Assert.IsNotNull(sentMessage);
            SnsMessage message = JsonConvert.DeserializeObject <SnsMessage>(sentMessage);

            Assert.IsNotNull(message);
            Assert.AreEqual("message body", message.Message);
            Assert.AreEqual("String", message.MessageAttributes["messageType"].Type);
            Assert.AreEqual("JungleBus.Tests.TestMessage, JungleBus.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", message.MessageAttributes["messageType"].Value);
            _mockLogger.Verify(x => x.OutboundLogMessage(It.IsAny <string>(), It.IsAny <string>()), Times.Once());
        }