Skip to content

Commit 9e344d6

Browse files
committed
Update and delete pet tests
1 parent e7b3177 commit 9e344d6

12 files changed

+368
-11
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
using QAToolKit.Core.Models;
2+
using QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Get.Helpers;
3+
using System.Collections.Generic;
4+
5+
namespace QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Post
6+
{
7+
public static class DeletePetProperties
8+
{
9+
public static List<Parameter> Get(bool exampleValues)
10+
{
11+
if (exampleValues)
12+
{
13+
return new List<Parameter>()
14+
{
15+
new Parameter() {
16+
Name = "api_key",
17+
Location = Location.Header,
18+
Nullable = false,
19+
Type = "string",
20+
Required = false,
21+
Value = null
22+
},
23+
new Parameter() {
24+
Name = "petId",
25+
Location = Location.Path,
26+
Nullable = false,
27+
Type = "integer",
28+
Required = true,
29+
Value = null
30+
}
31+
};
32+
}
33+
else
34+
{
35+
return new List<Parameter>()
36+
{
37+
new Parameter() {
38+
Name = "api_key",
39+
Location = Location.Header,
40+
Nullable = false,
41+
Type = "string",
42+
Required = false,
43+
Value = null
44+
},
45+
new Parameter() {
46+
Name = "petId",
47+
Location = Location.Path,
48+
Nullable = false,
49+
Type = "integer",
50+
Required = true,
51+
Value = null
52+
}
53+
};
54+
}
55+
}
56+
}
57+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using QAToolKit.Core.Models;
2+
using QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Get.Helpers;
3+
using System.Collections.Generic;
4+
5+
namespace QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Post
6+
{
7+
public static class DeletePetResponse
8+
{
9+
public static List<Response> Get()
10+
{
11+
return new List<Response>()
12+
{
13+
PetResponse400.Get()
14+
};
15+
}
16+
}
17+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using QAToolKit.Core.Models;
2+
using QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Get.Helpers;
3+
using System.Collections.Generic;
4+
5+
namespace QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Post
6+
{
7+
public static class UpdatePetBody
8+
{
9+
public static List<RequestBody> Get(bool exampleValues)
10+
{
11+
if (exampleValues)
12+
{
13+
return new List<RequestBody>()
14+
{
15+
new RequestBody() {
16+
ContentType = ContentType.ToEnum(ContentType.Json),
17+
Name = "Pet",
18+
Required = true,
19+
Properties = PetObjectWithExampleValues.GetProperties()
20+
}
21+
};
22+
}
23+
else
24+
{
25+
return new List<RequestBody>()
26+
{
27+
new RequestBody() {
28+
ContentType = ContentType.ToEnum(ContentType.Json),
29+
Name = "Pet",
30+
Required = true,
31+
Properties = PetObjectWithoutExampleValues.GetProperties()
32+
}
33+
};
34+
}
35+
}
36+
}
37+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using QAToolKit.Core.Models;
2+
using QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Get.Helpers;
3+
using System.Collections.Generic;
4+
5+
namespace QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Post
6+
{
7+
public static class UpdatePetResponse
8+
{
9+
public static List<Response> Get(bool exampleValues)
10+
{
11+
return new List<Response>()
12+
{
13+
PetResponse200.Get(exampleValues),
14+
PetResponse400.Get(),
15+
PetResponse404.Get(),
16+
PetResponse405.Get()
17+
};
18+
}
19+
}
20+
}

src/QAToolKit.Source.Swagger.Test/QAToolKit.Source.Swagger.Test.csproj

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,4 @@
3232
</None>
3333
</ItemGroup>
3434

35-
<ItemGroup>
36-
<Folder Include="Fixtures\PetApi\Delete\" />
37-
<Folder Include="Fixtures\PetApi\Post\Helpers\" />
38-
<Folder Include="Fixtures\PetApi\Put\" />
39-
</ItemGroup>
40-
4135
</Project>
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
using ExpectedObjects;
2+
using Microsoft.Extensions.Logging;
3+
using Newtonsoft.Json;
4+
using QAToolKit.Core.Models;
5+
using QAToolKit.Source.Swagger.Test.Fixtures.PetApi.Post;
6+
using System;
7+
using System.Collections.Generic;
8+
using System.IO;
9+
using System.Linq;
10+
using System.Net.Http;
11+
using System.Threading.Tasks;
12+
using Xunit;
13+
using Xunit.Abstractions;
14+
15+
namespace QAToolKit.Source.Swagger.Test.SwaggerTests.PetApi.Delete
16+
{
17+
public class SwaggerProcessorDeletePetTests
18+
{
19+
private readonly ILogger<SwaggerProcessorDeletePetTests> _logger;
20+
21+
public SwaggerProcessorDeletePetTests(ITestOutputHelper testOutputHelper)
22+
{
23+
var loggerFactory = new LoggerFactory();
24+
loggerFactory.AddProvider(new XunitLoggerProvider(testOutputHelper));
25+
_logger = loggerFactory.CreateLogger<SwaggerProcessorDeletePetTests>();
26+
}
27+
28+
[Fact]
29+
public async Task DeletePetWithoutExampleValuesTest_Successfull()
30+
{
31+
var fileSource = new SwaggerFileSource(options =>
32+
{
33+
options.AddBaseUrl(new Uri("https://petstore3.swagger.io/"));
34+
options.AddRequestFilters(new RequestFilter()
35+
{
36+
EndpointNameWhitelist = new string[] { "deletePet" }
37+
});
38+
});
39+
40+
var requests = await fileSource.Load(new List<FileInfo>() {
41+
new FileInfo("Assets/swagger-pets-test.json")
42+
});
43+
44+
_logger.LogInformation(JsonConvert.SerializeObject(requests, Formatting.Indented));
45+
46+
Assert.NotNull(requests);
47+
Assert.Equal(1, requests.Count);
48+
Assert.Empty(requests.FirstOrDefault().AuthenticationTypes);
49+
Assert.Equal("https://petstore3.swagger.io/api/v3", requests.FirstOrDefault().BasePath);
50+
Assert.Equal("", requests.FirstOrDefault().Description);
51+
Assert.Equal(HttpMethod.Delete, requests.FirstOrDefault().Method);
52+
Assert.Equal("deletePet", requests.FirstOrDefault().OperationId);
53+
Assert.Equal(2, requests.FirstOrDefault().Parameters.Count);
54+
55+
var expectedPetDeleteResponse = DeletePetProperties.Get(false).ToExpectedObject();
56+
expectedPetDeleteResponse.ShouldEqual(requests.FirstOrDefault().Parameters);
57+
58+
Assert.Equal("/pet/{petId}", requests.FirstOrDefault().Path);
59+
Assert.Single(requests.FirstOrDefault().Responses);
60+
61+
var expectedPetsResponse = DeletePetResponse.Get().ToExpectedObject();
62+
expectedPetsResponse.ShouldEqual(requests.FirstOrDefault().Responses);
63+
64+
Assert.Equal("Deletes a pet", requests.FirstOrDefault().Summary);
65+
Assert.Collection(requests.FirstOrDefault().Tags, item =>
66+
{
67+
item = "pet";
68+
});
69+
Assert.Empty(requests.FirstOrDefault().TestTypes);
70+
}
71+
72+
[Fact]
73+
public async Task DeletePetWithExampleValuesTest_Successfull()
74+
{
75+
var fileSource = new SwaggerFileSource(options =>
76+
{
77+
options.AddBaseUrl(new Uri("https://petstore3.swagger.io/"));
78+
options.AddRequestFilters(new RequestFilter()
79+
{
80+
EndpointNameWhitelist = new string[] { "deletePet" }
81+
});
82+
options.UseSwaggerExampleValues = true;
83+
});
84+
85+
var requests = await fileSource.Load(new List<FileInfo>() {
86+
new FileInfo("Assets/swagger-pets-test.json")
87+
});
88+
89+
_logger.LogInformation(JsonConvert.SerializeObject(requests, Formatting.Indented));
90+
91+
Assert.NotNull(requests);
92+
Assert.Equal(1, requests.Count);
93+
Assert.Empty(requests.FirstOrDefault().AuthenticationTypes);
94+
Assert.Equal("https://petstore3.swagger.io/api/v3", requests.FirstOrDefault().BasePath);
95+
Assert.Equal("", requests.FirstOrDefault().Description);
96+
Assert.Equal(HttpMethod.Delete, requests.FirstOrDefault().Method);
97+
Assert.Equal("deletePet", requests.FirstOrDefault().OperationId);
98+
Assert.Equal(2, requests.FirstOrDefault().Parameters.Count);
99+
100+
var expectedPetDeleteResponse = DeletePetProperties.Get(true).ToExpectedObject();
101+
expectedPetDeleteResponse.ShouldEqual(requests.FirstOrDefault().Parameters);
102+
103+
Assert.Equal("/pet/{petId}", requests.FirstOrDefault().Path);
104+
Assert.Single(requests.FirstOrDefault().Responses);
105+
106+
var expectedPetsResponse = DeletePetResponse.Get().ToExpectedObject();
107+
expectedPetsResponse.ShouldEqual(requests.FirstOrDefault().Responses);
108+
109+
Assert.Equal("Deletes a pet", requests.FirstOrDefault().Summary);
110+
Assert.Collection(requests.FirstOrDefault().Tags, item =>
111+
{
112+
item = "pet";
113+
});
114+
Assert.Empty(requests.FirstOrDefault().TestTypes);
115+
}
116+
}
117+
}

src/QAToolKit.Source.Swagger.Test/HttpGetTests/PetApi/SwaggerProcessorFindByTagsTests.cs renamed to src/QAToolKit.Source.Swagger.Test/SwaggerTests/PetApi/Get/SwaggerProcessorFindByTagsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
using Xunit;
1313
using Xunit.Abstractions;
1414

15-
namespace QAToolKit.Source.Swagger.Test.HttpGetTests.PetApi
15+
namespace QAToolKit.Source.Swagger.Test.SwaggerTests.PetApi.Get
1616
{
1717
public class SwaggerProcessorFindByTagsTests
1818
{

src/QAToolKit.Source.Swagger.Test/HttpGetTests/PetApi/SwaggerProcessorGetPetByIdTests.cs renamed to src/QAToolKit.Source.Swagger.Test/SwaggerTests/PetApi/Get/SwaggerProcessorGetPetByIdTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
using Xunit;
1313
using Xunit.Abstractions;
1414

15-
namespace QAToolKit.Source.Swagger.Test.HttpGetTests.PetApi
15+
namespace QAToolKit.Source.Swagger.Test.SwaggerTests.PetApi.Get
1616
{
1717
public class SwaggerProcessorGetPetByIdTests
1818
{

src/QAToolKit.Source.Swagger.Test/HttpGetTests/PetApi/SwaggerProcessorGetPetsByStatus.cs renamed to src/QAToolKit.Source.Swagger.Test/SwaggerTests/PetApi/Get/SwaggerProcessorGetPetsByStatus.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
using Xunit;
1313
using Xunit.Abstractions;
1414

15-
namespace QAToolKit.Source.Swagger.Test.HttpGetTests.PetApi
15+
namespace QAToolKit.Source.Swagger.Test.SwaggerTests.PetApi.Get
1616
{
1717
public class SwaggerProcessorGetPetsByStatus
1818
{

src/QAToolKit.Source.Swagger.Test/HttpGetTests/PetApi/SwaggerProcessorPetApiTests.cs renamed to src/QAToolKit.Source.Swagger.Test/SwaggerTests/PetApi/Get/SwaggerProcessorPetApiTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
using Xunit;
88
using Xunit.Abstractions;
99

10-
namespace QAToolKit.Source.Swagger.Test.HttpGetTests.PetApi
10+
namespace QAToolKit.Source.Swagger.Test.SwaggerTests.PetApi.Get
1111
{
1212
public class SwaggerProcessorPetApiTests
1313
{

0 commit comments

Comments
 (0)