public async Task HttpTesterClientAddGetHttpRequest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "GetAllBikes" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); using (var client = new HttpTesterClient()) { var response = await client .CreateHttpRequest(requests.FirstOrDefault()) .Start(); var msg = await response.GetResponseJsonBody <List <Bicycle> >(); var expectedResponse = BicycleFixture.GetBicycles().ToExpectedObject(); expectedResponse.ShouldEqual(msg); Assert.True(client.Duration < 2000); Assert.True(response.IsSuccessStatusCode); } }
public async Task SwaggerRequestFilterAuthTypeAndTestTypeAlternativeWithGeneralContainsTestV2_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { TestTypes = new List <TestType.Enumeration> { TestType.Enumeration.LoadTest }, HttpMethodsWhitelist = new List <HttpMethod>() { HttpMethod.Put, HttpMethod.Post, HttpMethod.Get }, GeneralContains = new string[] { "bicycle" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); Assert.Equal(5, requests.Count()); }
public async Task HttpTesterClientAddPostHttpRequest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "NewBike" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); using (var client = new HttpTesterClient()) { var response = await client .CreateHttpRequest(requests.FirstOrDefault()) .WithJsonBody(BicycleFixture.Get()) .Start(); var msg = await response.GetResponseJsonBody <Bicycle>(); Assert.True(client.Duration < 2000); Assert.True(response.IsSuccessStatusCode); Assert.Equal("Giant", msg.Brand); } }
public async Task SwaggerRequestFilterOperationIdAndAuthTypeAndTestTypeAlternativeWithMethodTest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { TestTypes = new List <TestType.Enumeration> { TestType.Enumeration.LoadTest }, EndpointNameWhitelist = new string[] { "DeleteBike", "UpdateBike" }, AuthenticationTypes = new List <AuthenticationType.Enumeration> { AuthenticationType.Enumeration.ApiKey }, HttpMethodsWhitelist = new List <HttpMethod>() { HttpMethod.Put, HttpMethod.Delete } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); Assert.Equal(2, requests.Count()); }
public async Task WrongSwaggerUrlSourceArgumentNullException2Test_Fails() { var urlSource = new SwaggerUrlSource(); await Assert.ThrowsAsync <InvalidSwaggerException>(async() => await urlSource.Load( new Uri[] { new Uri("https://github.com") })); }
public async Task WrongSwaggerUrlSourceArgumentNullExceptionTest_Fails() { var urlSource = new SwaggerUrlSource(); await Assert.ThrowsAsync <InvalidSwaggerException>(async() => await urlSource.Load( new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/index.html") })); }
public async Task SwaggerUrlSourceUriFormatExceptionTest_Fails() { var urlSource = new SwaggerUrlSource(); await Assert.ThrowsAsync <UriFormatException>(async() => await urlSource.Load( new Uri[] { new Uri("") })); }
public async Task SwaggerUrlSourceWithoutOptionsV3Test_Successfull() { var urlSource = new SwaggerUrlSource(); var requests = await urlSource.Load( new Uri[] { new Uri("https://petstore3.swagger.io/api/v3/openapi.json") }); Assert.NotNull(requests); }
public async Task PetsSwaggerGetPetByIdWithExampleValuesAndDifferentBaseAddressTestV1_Successfull() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("http://localhost/")); options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "GetAllBikes" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v1/swagger.json") }); _logger.LogInformation(JsonConvert.SerializeObject(requests, Formatting.Indented)); Assert.NotNull(requests); Assert.Single(requests); Assert.Empty(requests.FirstOrDefault().AuthenticationTypes); Assert.Equal("http://localhost/", requests.FirstOrDefault().BasePath); Assert.Equal("Get all bikes", requests.FirstOrDefault().Description); Assert.Equal(HttpMethod.Get, requests.FirstOrDefault().Method); Assert.Equal("GetAllBikes", requests.FirstOrDefault().OperationId); Assert.Equal(3, requests.FirstOrDefault().Parameters.Count); Assert.Equal("/api/bicycles", requests.FirstOrDefault().Path); Assert.Empty(requests.FirstOrDefault().RequestBodies); Assert.Equal(2, requests.FirstOrDefault().Responses.Count); var getBikesParameters = JsonConvert.SerializeObject(BicyclesParameters.Get(true), Formatting.None); Assert.Equal(getBikesParameters.ToLower(), JsonConvert.SerializeObject(requests.FirstOrDefault().Parameters, Formatting.None).ToLower()); var expectedPetsResponse = JsonConvert.SerializeObject(GetBicycleByIdResponse.Get().OrderBy(x => x.StatusCode), Formatting.None); Assert.Equal(expectedPetsResponse.ToLower(), JsonConvert.SerializeObject(requests.FirstOrDefault().Responses.OrderBy(x => x.StatusCode), Formatting.None).ToLower()); Assert.Equal("Get all bikes by filter", requests.FirstOrDefault().Summary); Assert.Collection(requests.FirstOrDefault().Tags, item => { item = "Public"; }); Assert.Empty(requests.FirstOrDefault().TestTypes); }
public async Task SwaggerRequestFilterGeneralContainsTagTest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { GeneralContains = new string[] { "PUBLIC" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v1/swagger.json") }); Assert.Equal(5, requests.Count()); }
public async Task SwaggerRequestFilterOnlyOperationIdTest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "GetAllBikes", "UpdateBike" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v1/swagger.json") }); Assert.Equal(2, requests.Count()); }
public async Task HttpTesterClientWithSwagger_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "NewBike" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v1/swagger.json") }); var replacementValues = new Dictionary <string, object> { { "api-version", 1 } }; var urlGenerator = new HttpRequestUrlGenerator(requests.FirstOrDefault(), options => { options.AddReplacementValues(replacementValues); }); using (var client = new HttpTesterClient()) { var response = await client .CreateHttpRequest(new Uri(urlGenerator.GetUrl())) .WithHeaders(new Dictionary <string, string>() { { "Content-Type", "application/json" } }) .WithMethod(HttpMethod.Post) .WithJsonBody(BicycleFixture.Get()) .Start(); var msg = await response.GetResponseJsonBody <Bicycle>(); Assert.True(client.Duration < 2000); Assert.True(response.IsSuccessStatusCode); Assert.Equal("Giant", msg.Brand); } }
public async Task PetsSwaggerGetPetByIdWithExampleValuesAndDifferentBaseAddressTestV2_Successfull() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("http://localhost/")); options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "NewBike", "UpdateBike" }, AuthenticationTypes = new List <AuthenticationType.Enumeration>() { AuthenticationType.Enumeration.ApiKey } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); _logger.LogInformation(JsonConvert.SerializeObject(requests, Formatting.Indented)); Assert.NotNull(requests); Assert.Equal(2, requests.Count()); Assert.Equal("http://localhost/", requests.FirstOrDefault().BasePath); Assert.Equal("Add new bike. TEST TAGS -> [@integrationtest,@loadtest,@apikey,@customer]", requests.FirstOrDefault().Description); Assert.Equal(HttpMethod.Post, requests.FirstOrDefault().Method); Assert.Equal("NewBike", requests.FirstOrDefault().OperationId); Assert.Equal(3, requests.FirstOrDefault().Parameters.Count); Assert.Equal("/api/bicycles", requests.FirstOrDefault().Path); Assert.NotEmpty(requests.FirstOrDefault().RequestBodies); Assert.Equal(3, requests.FirstOrDefault().Responses.Count); Assert.Equal("Create new bicycle", requests.FirstOrDefault().Summary); Assert.Collection(requests.FirstOrDefault().Tags, item => { item = "Public"; }); Assert.Equal(2, requests.FirstOrDefault().TestTypes.Count); Assert.Equal(2, requests.FirstOrDefault().AuthenticationTypes.Count); Assert.Contains(TestType.Enumeration.IntegrationTest, requests.FirstOrDefault().TestTypes); Assert.Contains(TestType.Enumeration.LoadTest, requests.FirstOrDefault().TestTypes); Assert.Contains(AuthenticationType.Enumeration.ApiKey, requests.FirstOrDefault().AuthenticationTypes); }
public async Task SwaggerUrlSourceWithOptionsV3Test_Successfull() { var swaggerSource = new SwaggerUrlSource( options => { options.AddRequestFilters(new RequestFilter() { EndpointNameWhitelist = new string[] { "getPetById", "addPet" } }); }); var requests = await swaggerSource.Load(new Uri[] { new Uri("https://petstore3.swagger.io/api/v3/openapi.json") }); _logger.LogInformation(JsonConvert.SerializeObject(requests, Formatting.Indented)); Assert.NotNull(requests); }
public async Task SwaggerRequestFilterOnlyTestTypeTest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { TestTypes = new List <TestType.Enumeration> { TestType.Enumeration.LoadTest } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); Assert.Equal(7, requests.Count()); }
public async Task SwaggerRequestFilterOperationIdAndAuthTypeTest_Success() { var urlSource = new SwaggerUrlSource(options => { options.AddBaseUrl(new Uri("https://qatoolkitapi.azurewebsites.net/")); options.AddRequestFilters(new RequestFilter() { TestTypes = new List <TestType.Enumeration> { TestType.Enumeration.LoadTest }, EndpointNameWhitelist = new string[] { "UpdateBike" } }); options.UseSwaggerExampleValues = true; }); var requests = await urlSource.Load(new Uri[] { new Uri("https://qatoolkitapi.azurewebsites.net/swagger/v2/swagger.json") }); Assert.Single(requests); }