public async void SendEmailReturnsFailureResponse() { // Arrange var emailRequest = new EmailRequest(); emailRequest.To = ""; emailRequest.To_name = "John Doe"; emailRequest.From = "xyz.com"; emailRequest.From_name = "Jane Doe"; emailRequest.Subject = "Your Bill"; emailRequest.Body = "$100"; //expectedResponse.Content //@"{StatusCode: 400, ReasonPhrase: 'BAD REQUEST', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:{Date: Wed, 05 Feb 2020 02:42:25 GMTServer: nginxConnection: keep-aliveContent-Type: application/jsonContent-Length: 157}}"; var mailGunHelper = new MailGunHelper(); var mockResponseFromApi = "Mailgun returns weird reponse"; var expectedResponse = new SendEmailResponse(false, "Oops! Something went wrong. Please try again later."); var mockMessageHandler = new MockHttpMessageHandler(mockResponseFromApi, HttpStatusCode.NotFound); var httpClient = new HttpClient(mockMessageHandler); // Act var actualResponse = await mailGunHelper.SendEmail(httpClient, emailRequest); // Assert Assert.Equal(expectedResponse.IsEmailSent, actualResponse.IsEmailSent); Assert.Equal(expectedResponse.Message, actualResponse.Message); }
public async void SendEmailReturnsSuccessResponse() { // Arrange var emailRequest = new EmailRequest(); emailRequest.To = "*****@*****.**"; emailRequest.To_name = "John Doe"; emailRequest.From = "*****@*****.**"; emailRequest.From_name = "Jane Doe"; emailRequest.Subject = "Your Bill"; emailRequest.Body = "$100"; //expectedResponse.Content //@"{StatusCode: 400, ReasonPhrase: 'BAD REQUEST', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:{Date: Wed, 05 Feb 2020 02:42:25 GMTServer: nginxConnection: keep-aliveContent-Type: application/jsonContent-Length: 157}}"; var mailGunHelper = new MailGunHelper(); var mockResponseFromApi = JsonConvert.SerializeObject(new { id = "1234", message = "Message sent succesfully" }); var expectedResponse = new SendEmailResponse(true, "Email queued and will be sent shortly"); var mockMessageHandler = new MockHttpMessageHandler(mockResponseFromApi, HttpStatusCode.OK); var httpClient = new HttpClient(mockMessageHandler); // Act var actualResponse = await mailGunHelper.SendEmail(httpClient, emailRequest); // Assert Assert.Equal(expectedResponse.IsEmailSent, actualResponse.IsEmailSent); Assert.Equal(expectedResponse.Message, actualResponse.Message); }