コード例 #1
0
        public async Task WhenNoMessages_ShouldNotSend()
        {
            //Arrange
            var from                = "from";
            var limit               = 5;
            var display             = "display";
            var messageNotification = new MessageNotificationConfigBuilder()
                                      .WithEnabled(true)
                                      .WithFrom(from)
                                      .WithLimit(limit)
                                      .WithDisplay(display)
                                      .Build();

            var appConfig = new AppConfigBuilder()
                            .WithMessageNotification(messageNotification)
                            .Build();

            this.Context.ConfigMock.Mock_Config(appConfig);
            this.Context.MessageQueueServiceMock.Mock_Dequeue(null);

            var service = this.Context.Build();

            //Act
            await service.DoWorkAsync();

            //Assert
            this.Context.MessageQueueServiceMock.Verify_DequeueCalled(Times.Once());
            this.Context.MessageSenderMock.Veirfy_SendMessageCalled(Times.Never());
        }
コード例 #2
0
        public void WhenDelayStartLTProvided_ShouldThrowArgumentNullException()
        {
            //Arrange
            var recipient = new MessageRecipientBuilder()
                            .WithAddress("address")
                            .Build();

            var config = new MessageNotificationConfigBuilder()
                         .WithEnabled(true)
                         .WithDelayStart(AppConsts.DELAY_MIN - 1)
                         .WithDisplay("display")
                         .WithFrom("from")
                         .WithRunInterval(AppConsts.INTERVAL_MIN)
                         .WithLimit(AppConsts.MESSAGES_LIMIT_MIN)
                         .WithMessageRecipients(new List <MessageRecipient>()
            {
                recipient
            })
                         .Build();

            var validator = this.Context.Build();

            //Act / Assert
            Assert.That(() => validator.ValidateAsync(config), Throws.InstanceOf <ArgumentOutOfRangeException>());
        }
コード例 #3
0
        public async Task ValidationShouldBeExecutedOnce()
        {
            //Arrange
            var from                = "from";
            var limit               = 5;
            var display             = "display";
            var messageNotification = new MessageNotificationConfigBuilder()
                                      .WithEnabled(true)
                                      .WithFrom(from)
                                      .WithLimit(limit)
                                      .WithDisplay(display)
                                      .Build();

            var appConfig = new AppConfigBuilder()
                            .WithMessageNotification(messageNotification)
                            .Build();

            this.Context.ConfigMock.Mock_Config(appConfig);

            var service = this.Context.Build();

            //Act
            await service.ValidateAsync();

            //Assert
            this.Context.MessageNotificationValidatorMock.Verify_ValidateCalled(x => x.Enabled == true && x.From == from && x.Limit == limit && x.Display == display, Times.Once());
        }
コード例 #4
0
        public async Task WhenMessageWithAppConfigProvided_ShouldReturnMimeMessage()
        {
            //Arrange
            var title   = "title";
            var content = "content";
            var from    = "*****@*****.**";
            var display = "FromDisplay";
            var to      = "*****@*****.**";

            var messageNotificationConfig = new MessageNotificationConfigBuilder()
                                            .WithFrom(from)
                                            .WithDisplay(display)
                                            .WithMessageRecipients(new List <MessageRecipient>()
            {
                new MessageRecipient {
                    Address = to
                }
            })
                                            .Build();

            var config = new AppConfigBuilder()
                         .WithMessageNotification(messageNotificationConfig)
                         .Build();

            var converter = this.Context
                            .WithAppConfig(config)
                            .Build();

            var message = new MessageBuilder()
                          .WithTitle(title)
                          .WithContent(content)
                          .Build();

            //Act
            var mimeMessage = await converter.GetAsync(message);

            //Assert
            Assert.Multiple(() =>
            {
                Assert.AreEqual(title, mimeMessage.Subject);
                Assert.AreEqual(content, mimeMessage.TextBody);
                Assert.AreEqual(from, (mimeMessage.From.First() as MailboxAddress).Address);
                Assert.AreEqual(display, (mimeMessage.From.First() as MailboxAddress).Name);
                Assert.AreEqual(to, (mimeMessage.To.First() as MailboxAddress).Address);
            });
        }
コード例 #5
0
        public async Task WhenMessages_ShouldSend()
        {
            //Arrange
            string title   = "title";
            string content = "content";

            var from                = "from";
            var limit               = 5;
            var display             = "display";
            var messageNotification = new MessageNotificationConfigBuilder()
                                      .WithEnabled(true)
                                      .WithFrom(from)
                                      .WithLimit(limit)
                                      .WithDisplay(display)
                                      .Build();

            var appConfig = new AppConfigBuilder()
                            .WithMessageNotification(messageNotification)
                            .Build();

            this.Context.ConfigMock.Mock_Config(appConfig);
            var message = new MessageBuilder()
                          .WithTitle(title)
                          .WithContent(content)
                          .Build();

            this.Context.MessageQueueServiceMock.Mock_Dequeue(message);

            var service = this.Context.Build();

            //Act
            await service.DoWorkAsync();

            //Assert
            this.Context.MessageQueueServiceMock.Verify_DequeueCalled(Times.Exactly(limit));
            this.Context.MessageSenderMock.Verify_SendMessageCalled(x => x.Title == title && x.Content == content, Times.Exactly(limit));
        }