public async Task Testing_Quotes_With_invalid_Authentication_Token() { //Arrange string currencyInput = "BTC"; var request = new HttpRequestMessage(HttpMethod.Get, $"api/v1/cryptocurrency/Quotes/{currencyInput}"); var httpClient = AppClientFactory.GetClient(); // add invalid bearer token value httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJTQnFKdmwzZ3dSWTBnaERob0p"); //Act var response = await httpClient.SendAsync(request); var responseString = await response.Content.ReadAsStringAsync(); var exchangeRatesList = JsonConvert.DeserializeObject <ExchangeRatesList>(responseString); //Assert response.StatusCode.Should().Be(HttpStatusCode.Unauthorized); responseString.Should().Contain("Unauthenticated Access"); response.IsSuccessStatusCode.Should().BeFalse(); exchangeRatesList.Should().NotBeNull(); exchangeRatesList.BaseCurrencySymbol.Should().BeNull(); exchangeRatesList.CurrenciesRates.Should().BeEmpty(); }
public async Task Testing_Quotes_With_Valid_Authentication_Token_But_Unauthorized_Access() { //Arrange string currencyInput = "BTC"; var request = new HttpRequestMessage(HttpMethod.Get, $"api/v1/cryptocurrency/Quotes/{currencyInput}"); var httpClient = AppClientFactory.GetClient(); // add valid user user but has no permission to Quotes endpoint await httpClient.AuthenticationAsync("test", "test2021"); //Act var response = await httpClient.SendAsync(request); var responseString = await response.Content.ReadAsStringAsync(); var exchangeRatesList = JsonConvert.DeserializeObject <ExchangeRatesList>(responseString); //Assert response.StatusCode.Should().Be(HttpStatusCode.Unauthorized); responseString.Should().Contain("Unauthorized Access"); response.IsSuccessStatusCode.Should().BeFalse(); exchangeRatesList.Should().NotBeNull(); exchangeRatesList.BaseCurrencySymbol.Should().BeNull(); exchangeRatesList.CurrenciesRates.Should().BeEmpty(); }
public async Task Testing_Authentication_With_Invalid_PasswordAsync() { //Arrange var httpClient = AppClientFactory.GetClient(); //Act // invalid Password and Valid userName await httpClient.AuthenticationAsync("knab", "knab123"); //Assert httpClient.DefaultRequestHeaders.Authorization.Should().BeNull(); }
public async Task Testing_Authentication_With_Valid_UserAndPasswordAsync() { //Arrange var httpClient = AppClientFactory.GetClient(); //Act await httpClient.AuthenticationAsync("knab", "knab2021"); //Assert httpClient.DefaultRequestHeaders.Authorization.Scheme.Should().StartWith("bearer"); httpClient.DefaultRequestHeaders.Authorization.Parameter.Should().NotBeNullOrEmpty(); }
public async Task Testing_Quotes_With_Invalid_InputAsync() { //Arrange string currencyInput = "SYB"; var httpClient = AppClientFactory.GetClient(); await httpClient.AuthenticationAsync("knab", "knab2021"); var request = new HttpRequestMessage(HttpMethod.Get, $"api/v1/cryptocurrency/Quotes/{currencyInput}"); //Act var response = await httpClient.SendAsync(request); var responseString = await response.Content.ReadAsStringAsync(); var ErrorMessage = JsonConvert.DeserializeObject <HttpExceptionDetails>(responseString); //Assert response.IsSuccessStatusCode.Should().BeFalse(); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); ErrorMessage.StatusCode.Should().Be(400); ErrorMessage.ErrorMessage.Should().Contain("SYB is invalid or Unsupported Cryptocurrency"); }
public async Task Testing_Quotes_With_Valid_InputAsync() { //Arrange string currencyInput = "BTC"; var httpClient = AppClientFactory.GetClient(); await httpClient.AuthenticationAsync("knab", "knab2021"); var request = new HttpRequestMessage(HttpMethod.Get, $"api/v1/cryptocurrency/Quotes/{currencyInput}"); //Act var response = await httpClient.SendAsync(request); var responseString = await response.Content.ReadAsStringAsync(); var exchangeRatesList = JsonConvert.DeserializeObject <ExchangeRatesList>(responseString); //Assert response.IsSuccessStatusCode.Should().BeTrue(); exchangeRatesList.Should().NotBeNull(); exchangeRatesList.BaseCurrencySymbol.Should().Be("BTC"); exchangeRatesList.CurrenciesRates.Should().HaveCountGreaterThan(0); exchangeRatesList.CurrenciesRates.Should().ContainKey("USD"); }