public void Then_Should_Have_Invoked_NotificationApi_Successfully_With_No_Personalisation_Tokens()
        {
            //arrange
            var firstEmailTemplate = Builder <EMailTemplate> .CreateNew().Build();

            firstEmailTemplate.TemplateId = "FirstTemplateId";

            _message = Builder <SendEmailRequest> .CreateNew().WithConstructor(() =>
                                                                               new SendEmailRequest("*****@*****.**",
                                                                                                    firstEmailTemplate,
                                                                                                    new {})).Build();

            var secondEmailTemplate = Builder <EMailTemplate> .CreateNew().Build();

            secondEmailTemplate.RecipientTemplate = null;

            _emailTemplateQueryRepository.Setup(x => x.GetEmailTemplate(firstEmailTemplate.TemplateId)).ReturnsAsync(secondEmailTemplate);

            _sendEmailHandler = new SendEmailHandler(_notificationApiMock.Object, _emailTemplateQueryRepository.Object, _loggerMock.Object);
            //act
            _sendEmailHandler.Handle(_message, new CancellationToken()).Wait();

            //assert
            _notificationApiMock.Verify();
        }
Exemple #2
0
        public void SendMail(ApplicationContext app, CreateEventSourceCommand commandEvent)
        {
            string bodyMessage = $"A aplicação {app.ApplicationName} parou de funcionar às {app.EventDateTime} " +
                                 ", email enviado automaticamente.";
            string emailMessage = $"OESP {app.ApplicationName}";

            var command = new SendEmailCommand(emailAddress: EmailConfig.EmailAddress
                                               , emailOrigin: EmailConfig.EmailOrigin, message: emailMessage, body: bodyMessage);


            using (var scope = this.ServiceProvider.CreateScope())
            {
                _sendEmail = scope.ServiceProvider.GetRequiredService <SendEmailHandler>();
                var result = (CommandResult)_sendEmail.Handle(command);


                if (result.Ok)
                {
                    InsertEmailEventSource(app, command, true);
                }
                else
                {
                    InsertEmailEventSource(app, command, false);
                }
            }
        }
        public void Then_RecipientTemplate_should_be_used_to_send_subsequent_emails()
        {
            var eMailTemplate1 = Builder <EMailTemplate> .CreateNew().Build();

            eMailTemplate1.RecipientTemplate = "SecondTemplateId";
            //arrange
            var request = Builder <SendEmailRequest> .CreateNew().WithConstructor(() =>
                                                                                  new SendEmailRequest("*****@*****.**",
                                                                                                       eMailTemplate1,
                                                                                                       new { key = "value" })).Build();

            var secondEmailTemplate = Builder <EMailTemplate> .CreateNew().Build();

            secondEmailTemplate.TemplateId        = "SecondTemplateId";
            secondEmailTemplate.RecipientTemplate = "ThirdTemplateId";

            _emailTemplateQueryRepository.Setup(x => x.GetEmailTemplate("SecondTemplateId")).ReturnsAsync(secondEmailTemplate);

            var thirdEmailTemplate = Builder <EMailTemplate> .CreateNew().Build();

            thirdEmailTemplate.TemplateId        = "ThirdTemplateId";
            thirdEmailTemplate.RecipientTemplate = null;

            _emailTemplateQueryRepository.Setup(x => x.GetEmailTemplate("ThirdTemplateId")).ReturnsAsync(thirdEmailTemplate);

            _sendEmailHandler = new SendEmailHandler(_notificationApiMock.Object, _emailTemplateQueryRepository.Object, _loggerMock.Object);

            _sendEmailHandler.Handle(request, new CancellationToken()).Wait();

            _notificationApiMock.Verify(not => not.SendEmail(It.IsAny <Email>()), Times.Exactly(3));
        }
        public void ValidateOk()
        {
            var command = new SendEmailCommand(emailAddress: "*****@*****.**", emailOrigin: "*****@*****.**"
                                               , message: "mensagem", body: "corpo");

            var handle = new SendEmailHandler(_service);

            var result = (CommandResult)handle.Handle(command);

            Assert.AreEqual(true, result.Ok);
        }
        public void ValidateFail()
        {
            var command = new SendEmailCommand(emailAddress: "email", emailOrigin: "email"
                                               , message: "", body: "");

            var handle = new SendEmailHandler(_service);

            var result = (CommandResult)handle.Handle(command);

            Assert.AreEqual(false, result.Ok);
        }
        public void Then_Should_Have_Invoked_NotificationApi_Successfully_With_No_Personalisation_Tokens()
        {
            //arrange
            var emailTemplate = Builder <EmailTemplateSummary> .CreateNew().Build();

            emailTemplate.TemplateId = "TemplateId";

            _message = Builder <SendEmailRequest> .CreateNew().WithConstructor(() =>
                                                                               new SendEmailRequest("*****@*****.**", emailTemplate, new {})).Build();

            _sendEmailHandler = new SendEmailHandler(_notificationApiMock.Object, _loggerMock.Object);

            //act
            _sendEmailHandler.Handle(_message, new CancellationToken()).Wait();

            //assert
            _notificationApiMock.Verify();
        }
        public void Then_Fails_Due_To_Invalid_Email()
        {
            //arrange
            _message = Builder <SendEmailRequest> .CreateNew().WithConstructor(() =>
                                                                               new SendEmailRequest("",
                                                                                                    Builder <EMailTemplate> .CreateNew().Build(),
                                                                                                    new { })).Build();

            _emailTemplateQueryRepository.Setup(x => x.GetEmailTemplate(It.IsAny <string>())).ReturnsAsync(Builder <EMailTemplate> .CreateNew().Build());
            _sendEmailHandler = new SendEmailHandler(_notificationApiMock.Object, _emailTemplateQueryRepository.Object, _loggerMock.Object);

            //act
            _sendEmailHandler.Handle(_message, new CancellationToken()).Wait();

            //assert
            _loggerMock.Verify(
                x => x.Log(LogLevel.Error, It.IsAny <EventId>(), It.IsAny <FormattedLogValues>(), It.IsAny <Exception>(),
                           It.IsAny <Func <object, Exception, string> >()), Times.Once);
        }
        public async Task Handle_CallsMessageProcessor_WhenGivenValidRequest()
        {
            var messageProcessorMock = new Mock <IMessageProcessor>();

            messageProcessorMock.Setup(m => m.Send(It.IsAny <EmailRequest>()))
            .ReturnsAsync(It.IsAny <SendGrid.Response>()).Verifiable();

            var sut = new SendEmailHandler(messageProcessorMock.Object);

            var request = new EmailRequest(fromAddress: "*****@*****.**", fromName: "Robert", toAddress: "*****@*****.**");

            var response = await sut.Handle(request, It.IsAny <CancellationToken>());

            Func <EmailRequest, bool> matches = r => r.FromAddress == request.FromAddress &&
                                                r.FromName == request.FromName &&
                                                r.ToAddress == request.ToAddress;

            messageProcessorMock.Verify(m => m.Send(It.Is <EmailRequest>(r => matches(r))));
            messageProcessorMock.VerifyAll();
        }
        public void Then_Fails_Due_To_Invalid_Email()
        {
            //arrange
            var emailTemplate = Builder <EmailTemplateSummary> .CreateNew().Build();

            emailTemplate.TemplateId = "TemplateId";
            emailTemplate.Recipients = string.Empty;

            _message = Builder <SendEmailRequest> .CreateNew().WithConstructor(() =>
                                                                               new SendEmailRequest(string.Empty, emailTemplate, new { })).Build();

            _sendEmailHandler = new SendEmailHandler(_notificationApiMock.Object, _loggerMock.Object);

            //act
            _sendEmailHandler.Handle(_message, new CancellationToken()).Wait();

            //assert
            _loggerMock.Verify(
                x => x.Log(LogLevel.Error, It.IsAny <EventId>(), It.IsAny <FormattedLogValues>(), It.IsAny <Exception>(),
                           It.IsAny <Func <object, Exception, string> >()), Times.Once);
        }
Exemple #10
0
 //send the Email with the new password to the player's registered email
 void sendEmail(String Email)
 {
     //tempPass = generatePass ();
     //Debug.LogError (Email + " ;" + tempPass);
     SendEmailHandler.sendEmail(Email, tempPass);
 }
Exemple #11
0
        public static void SendToEmail(string email, string title, string html, string errInfo)
        {
            SendEmailHandler handler = SendEmailFunc;

            handler.BeginInvoke(email, title, html, errInfo, null, null);
        }