public async Task LoginAsync_ShouldReturnString_WhenConnectionFailed() { // Arrange var localSettingsMock = new Mock <ILocalSettings>(); var configurationSettings = new ConfigurationSettingsDouble { ApiBaseUrl = "https://yahoo.com" }; using (var httpTest = new HttpTest()) { var errorMsg = "Call failed with status code 500 (Internal Server Error)"; httpTest.RespondWith(errorMsg, 500); IDopplerAPI dopplerAPI = new DopplerAPI(configurationSettings, localSettingsMock.Object); // Act var loginResult = await dopplerAPI.LoginAsync("*****@*****.**", "TestPassword", "apiKey"); // Assert Assert.False(loginResult.IsSuccessResult); Assert.NotNull(loginResult.ErrorValue); Assert.Null(loginResult.SuccessValue); Assert.StartsWith(errorMsg, loginResult.ErrorValue); } }
public async Task LoginAsync_ShouldReturnDopplerErrorMessage_WhenAuthenticationFailed() { // Arrange var localSettingsMock = new Mock <ILocalSettings>(); var configurationSettings = new ConfigurationSettingsDouble { ApiBaseUrl = "https://yahoo.com/" }; using (var httpTest = new HttpTest()) { var dopplerError = new DopplerErrorDto { Title = "Authentication error", Status = 401, ErrorCode = 2, Detail = "Authentication credentials are invalid", Type = "/docs/errors/401.2-authentication-error" }; httpTest.RespondWithJson(dopplerError, 401); IDopplerAPI dopplerAPI = new DopplerAPI(configurationSettings, localSettingsMock.Object); // Act var loginResult = await dopplerAPI.LoginAsync("*****@*****.**", "TestPassword", "apiKey"); // Assert Assert.False(loginResult.IsSuccessResult); Assert.NotNull(loginResult.ErrorValue); Assert.Null(loginResult.SuccessValue); Assert.Equal(dopplerError.Detail, loginResult.ErrorValue); } }
public async Task GetCampaignRecipientsAsync_ShouldReturnPage_WhenConnectionIsSuccessful() { // Arrange var localSettingsMock = new Mock <ILocalSettings>(); var configurationSettings = new ConfigurationSettingsDouble { ApiBaseUrl = "https://yahoo.com" }; using (var httpTest = new HttpTest()) { var getCampaignRecipientsResponse = Mocks.Mocks.GetCampaignRecipientListDto(); httpTest.RespondWithJson(getCampaignRecipientsResponse); IDopplerAPI dopplerAPI = new DopplerAPI(configurationSettings, localSettingsMock.Object); // Act var getCampaignRecipientsResult = await dopplerAPI.GetCampaignRecipientsAsync("*****@*****.**", 1); // Assert Assert.True(getCampaignRecipientsResult.IsSuccessResult); Assert.Null(getCampaignRecipientsResult.ErrorValue); Assert.NotNull(getCampaignRecipientsResult.SuccessValue); Assert.Equal(getCampaignRecipientsResponse.Items.Count, getCampaignRecipientsResult.SuccessValue.Items.Count); Assert.Equal(getCampaignRecipientsResponse.Items[0].ListId, getCampaignRecipientsResult.SuccessValue.Items[0].ListId); } }
public async Task GetHtmlCampaignPreviewAsync_ShouldReturnHtmlString_WhenConnectionIsSuccessful() { // Arrange var localSettingsMock = new Mock <ILocalSettings>(); var configurationSettings = new ConfigurationSettingsDouble { ApiBaseUrl = "https://yahoo.com" }; using (var httpTest = new HttpTest()) { httpTest.RespondWith("HTML HERE"); IDopplerAPI dopplerAPI = new DopplerAPI(configurationSettings, localSettingsMock.Object); // Act var getHtmlCampaignPreviewResult = await dopplerAPI.GetCampaignHtmlPreviewAsync("*****@*****.**", 12323); // Assert Assert.True(getHtmlCampaignPreviewResult.IsSuccessResult); Assert.Null(getHtmlCampaignPreviewResult.ErrorValue); Assert.NotNull(getHtmlCampaignPreviewResult.SuccessValue); Assert.NotEmpty(getHtmlCampaignPreviewResult.SuccessValue); } }
public async Task LoginAsync_ShouldReturnTrue_WhenAuthenticationIsSuccessful() { // Arrange var localSettingsMock = new Mock <ILocalSettings>(); var configurationSettings = new ConfigurationSettingsDouble { ApiBaseUrl = "https://yahoo.com/" }; using (var httpTest = new HttpTest()) { var userAuthenticationResponse = Mocks.Mocks.GetUserAuthenticationResponseDto(); httpTest.RespondWithJson(userAuthenticationResponse); IDopplerAPI dopplerAPI = new DopplerAPI(configurationSettings, localSettingsMock.Object); // Act var loginResult = await dopplerAPI.LoginAsync("*****@*****.**", "TestPassword", "apiKey"); // Assert Assert.True(loginResult.IsSuccessResult); Assert.Null(loginResult.ErrorValue); Assert.NotNull(loginResult.SuccessValue); Assert.Equal(userAuthenticationResponse.AccessToken, loginResult.SuccessValue.AccessToken); } }