diff --git a/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/OpenApiDiagnosticTests.cs b/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/OpenApiDiagnosticTests.cs index 7f7c34b26..df9d29fa0 100644 --- a/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/OpenApiDiagnosticTests.cs +++ b/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/OpenApiDiagnosticTests.cs @@ -59,6 +59,14 @@ public async Task DiagnosticReportMergedForExternalReference() result.OpenApiDiagnostic.Errors.Should().BeEquivalentTo(new List<OpenApiError> { new( new OpenApiException("[File: ./TodoReference.yaml] Invalid Reference identifier 'object-not-existing'.")) }); } + + [Fact] + public void DifferentVerbSameRouteShouldPass() + { + using var stream = Resources.GetStream("OpenApiReaderTests/Samples/differentMethodSameRoute.json"); + new OpenApiStreamReader().Read(stream, out var diagnostic); + diagnostic.Errors.Should().BeEmpty(); + } } public class ResourceLoader : IStreamLoader diff --git a/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/Samples/differentMethodSameRoute.json b/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/Samples/differentMethodSameRoute.json new file mode 100644 index 000000000..fa81bb506 --- /dev/null +++ b/test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/Samples/differentMethodSameRoute.json @@ -0,0 +1,79 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "OpenApi.IntegrationTest", + "version": "1.0" + }, + "paths": { + "/api/v2/someroute/areatype/{index}/{arg}": { + "get": { + "tags": [ + "Test" + ], + "parameters": [ + { + "name": "index", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "arg", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/v2/someroute/areatype/{index}/{language}": { + "put": { + "tags": [ + "Test" + ], + "parameters": [ + { + "name": "index", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "language", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "text", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + } + }, + "components": {} +} \ No newline at end of file