Skip to content

Commit d50b393

Browse files
committed
tests: adds unit tests to validate terse from settings is being used
Signed-off-by: Vincent Biret <vibiret@microsoft.com>
1 parent 8b91278 commit d50b393

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
using System.IO;
2+
using System.Threading.Tasks;
3+
using Xunit;
4+
5+
namespace Microsoft.OpenApi.Tests.Extensions;
6+
7+
public class OpenApiSerializableExtensionsTests
8+
{
9+
[Fact]
10+
public async Task UsesTheTerseOutputInformationFromSettingsTrue()
11+
{
12+
var parameter = new OpenApiParameter
13+
{
14+
Name = "param1",
15+
In = ParameterLocation.Query,
16+
Description = "A sample parameter",
17+
Required = false,
18+
Schema = new OpenApiSchema
19+
{
20+
Type = JsonSchemaType.String
21+
}
22+
};
23+
24+
var settings = new OpenApiJsonWriterSettings
25+
{
26+
Terse = true
27+
};
28+
29+
using var stream = new MemoryStream();
30+
await parameter.SerializeAsync(stream, OpenApiSpecVersion.OpenApi3_1, OpenApiConstants.Json, settings);
31+
32+
stream.Position = 0;
33+
using var reader = new StreamReader(stream);
34+
var output = await reader.ReadToEndAsync();
35+
36+
Assert.Equal("{\"name\":\"param1\",\"in\":\"query\",\"description\":\"A sample parameter\",\"schema\":{\"type\":\"string\"}}", output);
37+
}
38+
39+
[Fact]
40+
public async Task UsesTheTerseOutputInformationFromSettingsFalse()
41+
{
42+
var parameter = new OpenApiParameter
43+
{
44+
Name = "param1",
45+
In = ParameterLocation.Query,
46+
Description = "A sample parameter",
47+
Required = false,
48+
Schema = new OpenApiSchema
49+
{
50+
Type = JsonSchemaType.String
51+
}
52+
};
53+
54+
var settings = new OpenApiJsonWriterSettings
55+
{
56+
Terse = false
57+
};
58+
59+
using var stream = new MemoryStream();
60+
await parameter.SerializeAsync(stream, OpenApiSpecVersion.OpenApi3_1, OpenApiConstants.Json, settings);
61+
62+
stream.Position = 0;
63+
using var reader = new StreamReader(stream);
64+
var output = await reader.ReadToEndAsync();
65+
66+
Assert.Equal("{\n \"name\": \"param1\",\n \"in\": \"query\",\n \"description\": \"A sample parameter\",\n \"schema\": {\n \"type\": \"string\"\n }\n}", output);
67+
}
68+
69+
[Fact]
70+
public async Task UsesTheTerseOutputInformationFromSettingsNoSettings()
71+
{
72+
var parameter = new OpenApiParameter
73+
{
74+
Name = "param1",
75+
In = ParameterLocation.Query,
76+
Description = "A sample parameter",
77+
Required = false,
78+
Schema = new OpenApiSchema
79+
{
80+
Type = JsonSchemaType.String
81+
}
82+
};
83+
84+
using var stream = new MemoryStream();
85+
await parameter.SerializeAsync(stream, OpenApiSpecVersion.OpenApi3_1, OpenApiConstants.Json, null);
86+
87+
stream.Position = 0;
88+
using var reader = new StreamReader(stream);
89+
var output = await reader.ReadToEndAsync();
90+
91+
Assert.Equal("{\n \"name\": \"param1\",\n \"in\": \"query\",\n \"description\": \"A sample parameter\",\n \"schema\": {\n \"type\": \"string\"\n }\n}", output);
92+
}
93+
}

0 commit comments

Comments
 (0)