Beispiel #1
0
        public void Publish()
        {
            // Arrange
            const string   expectedTopicArn    = "http://some.url";
            const string   expectedMessageBody = "{}";
            var            eventToSend         = new Event();
            PublishRequest requestSent         = null;

            Mock <IConfiguration> config = new Mock <IConfiguration>();

            config.Setup(x => x.MessageSerializer).Returns(() =>
            {
                var mockMessageSerializer = new Mock <IMessageSerializer>();
                mockMessageSerializer.Setup(x => x.Serialize(It.IsAny <MessageEnvelope>()))
                .Returns(expectedMessageBody);
                return(mockMessageSerializer.Object);
            });
            Mock <IAwsBusConfiguration> awsConfig = new Mock <IAwsBusConfiguration>();

            awsConfig.Setup(x => x.TopicArnsByType)
            .Returns(new Dictionary <Type, string>
            {
                { typeof(Event), expectedTopicArn }
            });

            awsConfig.Setup(x => x.ClientFactory.CreateSnsClient())
            .Returns(() =>
            {
                var mockSnsClient = new Mock <IAmazonSimpleNotificationService>();
                mockSnsClient.Setup(x => x.Publish(It.IsAny <PublishRequest>())).Callback((PublishRequest req) =>
                {
                    requestSent = req;
                });
                return(mockSnsClient.Object);
            });

            AwsBus sut = new AwsBus(config.Object, awsConfig.Object);

            // Act
            sut.Publish(eventToSend);

            // Assert
            Assert.AreEqual(expectedTopicArn, requestSent.TopicArn);
            Assert.AreEqual(expectedMessageBody, requestSent.Message);
        }
Beispiel #2
0
        public void Send()
        {
            // Arrange
            const string       expectedQueueUrl    = "http://some.url";
            const string       expectedMessageBody = "{}";
            var                commandToSend       = new Command();
            SendMessageRequest requestSent         = null;

            Mock <IConfiguration> config = new Mock <IConfiguration>();

            config.Setup(x => x.MessageSerializer).Returns(() =>
            {
                var mockMessageSerializer = new Mock <IMessageSerializer>();
                mockMessageSerializer.Setup(x => x.Serialize(It.IsAny <MessageEnvelope>()))
                .Returns(expectedMessageBody);
                return(mockMessageSerializer.Object);
            });
            Mock <IAwsBusConfiguration> awsConfig = new Mock <IAwsBusConfiguration>();

            awsConfig.Setup(x => x.QueueUrlsByType)
            .Returns(new Dictionary <Type, string>
            {
                { typeof(Command), expectedQueueUrl }
            });

            awsConfig.Setup(x => x.ClientFactory.CreateSqsClient())
            .Returns(() =>
            {
                var mockSqsClient = new Mock <IAmazonSQS>();
                mockSqsClient.Setup(x => x.SendMessage(It.IsAny <SendMessageRequest>())).Callback((SendMessageRequest req) =>
                {
                    requestSent = req;
                });
                return(mockSqsClient.Object);
            });

            AwsBus sut = new AwsBus(config.Object, awsConfig.Object);

            // Act
            sut.Send(commandToSend);

            // Assert
            Assert.AreEqual(expectedQueueUrl, requestSent.QueueUrl);
            Assert.AreEqual(expectedMessageBody, requestSent.MessageBody);
        }