Skip to content

Commit 1475af6

Browse files
committed
Added a test for referencing security schemes
1 parent 16ec3b1 commit 1475af6

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

test/Microsoft.OpenApi.Readers.Tests/Microsoft.OpenApi.Readers.Tests.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
<SignAssembly>true</SignAssembly>
1313
<AssemblyOriginatorKeyFile>..\..\src\Microsoft.OpenApi.snk</AssemblyOriginatorKeyFile>
1414
</PropertyGroup>
15+
<ItemGroup>
16+
<None Remove="V3Tests\Samples\OpenApiOperation\securedOperation.yaml" />
17+
</ItemGroup>
1518
<ItemGroup>
1619
<EmbeddedResource Include="OpenApiReaderTests\Samples\unsupported.v1.yaml">
1720
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
@@ -109,6 +112,7 @@
109112
<EmbeddedResource Include="V3Tests\Samples\OpenApiInfo\minimalInfo.yaml">
110113
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
111114
</EmbeddedResource>
115+
<EmbeddedResource Include="V3Tests\Samples\OpenApiOperation\securedOperation.yaml" />
112116
<EmbeddedResource Include="V3Tests\Samples\OpenApiSchema\advancedSchemaWithReference.yaml">
113117
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
114118
</EmbeddedResource>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license.
3+
4+
using System.IO;
5+
using System.Linq;
6+
using Xunit;
7+
8+
namespace Microsoft.OpenApi.Readers.Tests.V3Tests
9+
{
10+
public class OpenApiOperationTests
11+
{
12+
private const string SampleFolderPath = "V3Tests/Samples/OpenApiOperation/";
13+
14+
[Fact]
15+
public void OperationWithSecurityRequirementShouldReferenceSecurityScheme()
16+
{
17+
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "securedOperation.yaml")))
18+
{
19+
var openApiDoc = new OpenApiStreamReader().Read(stream, out var diagnostic);
20+
21+
var securityRequirement = openApiDoc.Paths["/"].Operations[Models.OperationType.Get].Security.First();
22+
23+
Assert.Same(securityRequirement.Keys.First(), openApiDoc.Components.SecuritySchemes.First().Value);
24+
}
25+
}
26+
}
27+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
openapi: 3.0.0
2+
info:
3+
title: Example of Security Requirement referencing a security scheme
4+
version: 1.0.0
5+
paths:
6+
'/':
7+
get:
8+
security:
9+
- basicAuth: []
10+
responses:
11+
'200':
12+
description: OK
13+
components:
14+
securitySchemes:
15+
basicAuth:
16+
type: http
17+
scheme: basic

0 commit comments

Comments
 (0)