Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions src/Microsoft.OpenApi/Models/OpenApiReference.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,6 @@ public void SerializeAsV3(IOpenApiWriter writer)
return;
}

if (Type == ReferenceType.SecurityScheme)
{
// Write the string as property name
writer.WritePropertyName(ReferenceV3);
return;
}

writer.WriteStartObject();

// $ref
Expand Down
2 changes: 1 addition & 1 deletion src/Microsoft.OpenApi/Models/OpenApiSecurityRequirement.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void SerializeAsV3(IOpenApiWriter writer)
continue;
}

securityScheme.SerializeAsV3(writer);
writer.WritePropertyName(securityScheme.Reference.ReferenceV3);

writer.WriteStartArray();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"scheme1": [
"scope1",
"scope2",
"scope3"
],
"scheme2": [
"scope4",
"scope5"
],
"scheme3": [ ]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"scheme1":["scope1","scope2","scope3"],"scheme2":["scope4","scope5"],"scheme3":[ ]}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Threading.Tasks;
using FluentAssertions;
using Microsoft.OpenApi.Extensions;
using Microsoft.OpenApi.Models;
using Microsoft.OpenApi.Writers;
using VerifyXunit;
using Xunit;

namespace Microsoft.OpenApi.Tests.Models
Expand Down Expand Up @@ -95,6 +100,23 @@ public void SerializeBasicSecurityRequirementAsV3JsonWorks()
actual.Should().Be(expected);
}

[Theory]
[InlineData(true)]
[InlineData(false)]
public async Task SerializeSecurityRequirementAsV3JsonWorksAsync(bool produceTerseOutput)
{
// Arrange
var outputStringWriter = new StringWriter(CultureInfo.InvariantCulture);
var writer = new OpenApiJsonWriter(outputStringWriter, new() { Terse = produceTerseOutput });

// Act
SecurityRequirementWithReferencedSecurityScheme.SerializeAsV3(writer);
writer.Flush();

// Assert
await Verifier.Verify(outputStringWriter).UseParameters(produceTerseOutput);
}

[Fact]
public void SerializeSecurityRequirementWithReferencedSecuritySchemeAsV3JsonWorks()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"sampleSecurityScheme": null
"$ref": "sampleSecurityScheme"
}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"sampleSecurityScheme":null}
{"$ref":"sampleSecurityScheme"}
Original file line number Diff line number Diff line change
Expand Up @@ -314,12 +314,7 @@ public async Task SerializeReferencedSecuritySchemeAsV3JsonWorksAsync(bool produ
var writer = new OpenApiJsonWriter(outputStringWriter, new() { Terse = produceTerseOutput });

// Act
// Add dummy start object, value, and end object to allow SerializeAsV3 to output security scheme
// as property name.
writer.WriteStartObject();
ReferencedSecurityScheme.SerializeAsV3(writer);
writer.WriteNull();
writer.WriteEndObject();
writer.Flush();

// Assert
Expand Down
Loading