Skip to content

Commit bad9aad

Browse files
committed
Moved full document test to ExistingOpenApiIntegration test folder, which is to be removed at the very end once have dedicated test suites for all components
1 parent a955616 commit bad9aad

15 files changed

+54
-66
lines changed

test/OpenApiTests/AircraftType.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/AircraftType.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using JetBrains.Annotations;
22

3-
namespace OpenApiTests
3+
namespace OpenApiTests.ExistingOpenApiIntegration
44
{
55
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
66
public enum AircraftType

test/OpenApiTests/Airline.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/Airline.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using JetBrains.Annotations;
22

3-
namespace OpenApiTests
3+
namespace OpenApiTests.ExistingOpenApiIntegration
44
{
55
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
66
public enum Airline

test/OpenApiTests/Airplane.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/Airplane.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using JsonApiDotNetCore.Resources;
66
using JsonApiDotNetCore.Resources.Annotations;
77

8-
namespace OpenApiTests
8+
namespace OpenApiTests.ExistingOpenApiIntegration
99
{
1010
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
1111
public sealed class Airplane : Identifiable<string>

test/OpenApiTests/AirplanesController.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/AirplanesController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using JsonApiDotNetCore.Services;
44
using Microsoft.Extensions.Logging;
55

6-
namespace OpenApiTests
6+
namespace OpenApiTests.ExistingOpenApiIntegration
77
{
88
public sealed class AirplanesController : JsonApiController<Airplane, string>
99
{

test/OpenApiTests/OpenApiDbContext.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/ExistingIntegrationDbContext.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
// @formatter:wrap_chained_method_calls chop_always
55
// @formatter:keep_existing_linebreaks true
66

7-
namespace OpenApiTests
7+
namespace OpenApiTests.ExistingOpenApiIntegration
88
{
99
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
10-
public sealed class OpenApiDbContext : DbContext
10+
public sealed class ExistingIntegrationDbContext : DbContext
1111
{
1212
public DbSet<Airplane> Airplanes { get; set; }
1313
public DbSet<Flight> Flights { get; set; }
1414
public DbSet<FlightAttendant> FlightAttendants { get; set; }
1515

16-
public OpenApiDbContext(DbContextOptions<OpenApiDbContext> options)
16+
public ExistingIntegrationDbContext(DbContextOptions<ExistingIntegrationDbContext> options)
1717
: base(options)
1818
{
1919
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using JsonApiDotNetCore.Configuration;
2+
using JsonApiDotNetCore.Resources.Annotations;
3+
using Microsoft.EntityFrameworkCore;
4+
using Newtonsoft.Json.Serialization;
5+
using OpenApiTests.Startups;
6+
7+
namespace OpenApiTests.ExistingOpenApiIntegration
8+
{
9+
public sealed class ExistingOpenApiIntegrationStartup<TDbContext> : OpenApiStartup<TDbContext>
10+
where TDbContext : DbContext
11+
{
12+
protected override void SetJsonApiOptions(JsonApiOptions options)
13+
{
14+
base.SetJsonApiOptions(options);
15+
16+
options.Namespace = "api/v1";
17+
options.DefaultPageSize = new PageSize(10);
18+
options.MaximumPageSize = new PageSize(100);
19+
options.MaximumPageNumber = new PageNumber(50);
20+
options.IncludeTotalResourceCount = true;
21+
options.ValidateModelState = true;
22+
options.DefaultAttrCapabilities = AttrCapabilities.AllowView;
23+
24+
options.SerializerSettings.ContractResolver = new DefaultContractResolver
25+
{
26+
NamingStrategy = new KebabCaseNamingStrategy()
27+
};
28+
}
29+
}
30+
}

test/OpenApiTests/OpenApiDocumentTests.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/ExistingOpenApiIntegrationTests.cs

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77
using TestBuildingBlocks;
88
using Xunit;
99

10-
namespace OpenApiTests
10+
namespace OpenApiTests.ExistingOpenApiIntegration
1111
{
12-
public sealed class OpenApiDocumentTests : IntegrationTestContext<OpenApiStartup<OpenApiDbContext>, OpenApiDbContext>
12+
public sealed class ExistingOpenApiIntegrationTests
13+
: IntegrationTestContext<ExistingOpenApiIntegrationStartup<ExistingIntegrationDbContext>, ExistingIntegrationDbContext>
1314
{
14-
public OpenApiDocumentTests()
15+
public ExistingOpenApiIntegrationTests()
1516
{
1617
UseController<AirplanesController>();
1718
UseController<FlightsController>();
@@ -22,7 +23,7 @@ public OpenApiDocumentTests()
2223
public async Task Retrieved_document_matches_expected_document()
2324
{
2425
// Arrange
25-
string embeddedResourceName = $"{nameof(OpenApiTests)}.swagger.json";
26+
string embeddedResourceName = $"{nameof(OpenApiTests)}.{nameof(ExistingOpenApiIntegration)}.swagger.json";
2627
string expectedDocument = await LoadEmbeddedResourceAsync(embeddedResourceName);
2728
const string requestUrl = "swagger/v1/swagger.json";
2829

test/OpenApiTests/Flight.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/Flight.cs

+1-24
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,7 @@
55
using JsonApiDotNetCore.Resources;
66
using JsonApiDotNetCore.Resources.Annotations;
77

8-
//
9-
//
10-
// [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)]
11-
// [Required, MaxLength(255)]
12-
// public string Title { get; set; }
13-
//
14-
// [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)]
15-
// [MaxLength(2000)]
16-
// public string Summary { get; set; }
17-
//
18-
// [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)]
19-
// public int? DurationInSeconds { get; set; }
20-
//
21-
// [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)]
22-
// public DateTime? PublishedAt { get; set; }
23-
//
24-
// [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowChange)]
25-
// public bool IsDeleted { get; set; }
26-
//
27-
// [Attr(Capabilities = AttrCapabilities.AllowView | AttrCapabilities.AllowChange)]
28-
// [MaxLength(2000)]
29-
// public string ExternalId { get; set; }
30-
31-
namespace OpenApiTests
8+
namespace OpenApiTests.ExistingOpenApiIntegration
329
{
3310
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
3411
public sealed class Flight : Identifiable

test/OpenApiTests/FlightAttendant.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/FlightAttendant.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using JsonApiDotNetCore.Resources;
55
using JsonApiDotNetCore.Resources.Annotations;
66

7-
namespace OpenApiTests
7+
namespace OpenApiTests.ExistingOpenApiIntegration
88
{
99
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
1010
public sealed class FlightAttendant : Identifiable<string>
@@ -13,7 +13,7 @@ public sealed class FlightAttendant : Identifiable<string>
1313
public override string Id { get; set; }
1414

1515
[Attr(Capabilities = AttrCapabilities.None)]
16-
public FlightAttendantExpertise ExpertiseLevel { get; set; }
16+
public FlightAttendantExpertiseLevel ExpertiseLevel { get; set; }
1717

1818
[Attr(PublicName = "document-number", Capabilities = AttrCapabilities.AllowCreate | AttrCapabilities.AllowChange)]
1919
[Required]

test/OpenApiTests/FlightAttendantExpertise.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/FlightAttendantExpertiseLevel.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using JetBrains.Annotations;
22

3-
namespace OpenApiTests
3+
namespace OpenApiTests.ExistingOpenApiIntegration
44
{
55
[UsedImplicitly(ImplicitUseTargetFlags.Members)]
6-
public enum FlightAttendantExpertise
6+
public enum FlightAttendantExpertiseLevel
77
{
88
Junior,
99
Intermediate,

test/OpenApiTests/FlightAttendantsController.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/FlightAttendantsController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using JsonApiDotNetCore.Services;
44
using Microsoft.Extensions.Logging;
55

6-
namespace OpenApiTests
6+
namespace OpenApiTests.ExistingOpenApiIntegration
77
{
88
public sealed class FlightAttendantsController : JsonApiController<FlightAttendant, string>
99
{

test/OpenApiTests/FlightsController.cs renamed to test/OpenApiTests/ExistingOpenApiIntegration/FlightsController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using JsonApiDotNetCore.Services;
44
using Microsoft.Extensions.Logging;
55

6-
namespace OpenApiTests
6+
namespace OpenApiTests.ExistingOpenApiIntegration
77
{
88
public sealed class FlightsController : JsonApiController<Flight>
99
{

test/OpenApiTests/OpenApiTests.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,16 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<OpenApiReference Include="swagger.json">
32+
<OpenApiReference Include="ExistingOpenApiIntegration\swagger.json">
3333
<Namespace>OpenApiTests.ClientLibrary.GeneratedCode</Namespace>
3434
<ClassName>OpenApiClient</ClassName>
3535
<CodeGenerator>NSwagCSharp</CodeGenerator>
3636
<Options>/UseBaseUrl:false /GenerateClientInterfaces:true</Options>
3737
</OpenApiReference>
3838
</ItemGroup>
39-
39+
4040
<ItemGroup>
41-
<EmbeddedResource Include="swagger.json" />
41+
<EmbeddedResource Include="ExistingOpenApiIntegration\swagger.json" />
4242
</ItemGroup>
4343

4444
<!-- Fixes IntelliSense errors on openapi.json in Visual Studio 2019, which uses the schema for OpenAPI 3.1 by default. -->

test/OpenApiTests/OpenApiStartup.cs renamed to test/OpenApiTests/Startups/OpenApiStartup.cs

+2-22
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
using JsonApiDotNetCore.Configuration;
22
using JsonApiDotNetCore.OpenApi;
3-
using JsonApiDotNetCore.Resources.Annotations;
43
using Microsoft.AspNetCore.Builder;
54
using Microsoft.AspNetCore.Hosting;
65
using Microsoft.EntityFrameworkCore;
76
using Microsoft.Extensions.DependencyInjection;
87
using Microsoft.Extensions.Logging;
9-
using Newtonsoft.Json.Serialization;
108
using TestBuildingBlocks;
119

12-
namespace OpenApiTests
10+
namespace OpenApiTests.Startups
1311
{
14-
public sealed class OpenApiStartup<TDbContext> : TestableStartup<TDbContext>
12+
public abstract class OpenApiStartup<TDbContext> : TestableStartup<TDbContext>
1513
where TDbContext : DbContext
1614
{
1715
public override void ConfigureServices(IServiceCollection services)
@@ -23,24 +21,6 @@ public override void ConfigureServices(IServiceCollection services)
2321
services.AddOpenApi(mvcBuilder);
2422
}
2523

26-
protected override void SetJsonApiOptions(JsonApiOptions options)
27-
{
28-
base.SetJsonApiOptions(options);
29-
30-
options.Namespace = "api/v1";
31-
options.DefaultPageSize = new PageSize(10);
32-
options.MaximumPageSize = new PageSize(100);
33-
options.MaximumPageNumber = new PageNumber(50);
34-
options.IncludeTotalResourceCount = true;
35-
options.ValidateModelState = true;
36-
options.DefaultAttrCapabilities = AttrCapabilities.AllowView;
37-
38-
options.SerializerSettings.ContractResolver = new DefaultContractResolver
39-
{
40-
NamingStrategy = new KebabCaseNamingStrategy()
41-
};
42-
}
43-
4424
public override void Configure(IApplicationBuilder app, IWebHostEnvironment environment, ILoggerFactory loggerFactory)
4525
{
4626
app.UseRouting();

0 commit comments

Comments
 (0)