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()); }
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>()); }
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()); }
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); }); }
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)); }