Skip to content

Commit 7629765

Browse files
committed
Add test to verify
1 parent d183ad5 commit 7629765

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4+
using System;
45
using System.Collections.Generic;
56
using System.Globalization;
67
using System.IO;
8+
using System.Linq;
79
using System.Threading.Tasks;
810
using FluentAssertions;
911
using Microsoft.OpenApi.Any;
1012
using Microsoft.OpenApi.Extensions;
1113
using Microsoft.OpenApi.Interfaces;
1214
using Microsoft.OpenApi.Models;
15+
using Microsoft.OpenApi.Services;
1316
using Microsoft.OpenApi.Writers;
1417
using VerifyXunit;
1518
using Xunit;
@@ -506,5 +509,56 @@ public void CloningSchemaExtensionsWorks()
506509
};
507510
Assert.NotEqual(schema.Extensions, schemaCopy.Extensions);
508511
}
512+
513+
[Fact]
514+
public void OpenApiWalkerVisitsOpenApiSchemaNot()
515+
{
516+
var outerSchema = new OpenApiSchema()
517+
{
518+
Title = "Outer Schema",
519+
Not = new OpenApiSchema()
520+
{
521+
Title = "Inner Schema",
522+
Type = "string",
523+
}
524+
};
525+
526+
var document = new OpenApiDocument()
527+
{
528+
Paths = new OpenApiPaths()
529+
{
530+
["/foo"] = new OpenApiPathItem()
531+
{
532+
Parameters = new[]
533+
{
534+
new OpenApiParameter()
535+
{
536+
Name = "foo",
537+
In = ParameterLocation.Query,
538+
Schema = outerSchema,
539+
}
540+
}
541+
}
542+
}
543+
};
544+
545+
// Act
546+
var visitor = new SchemaVisitor();
547+
var walker = new OpenApiWalker(visitor);
548+
walker.Walk(document);
549+
550+
// Assert
551+
visitor.Titles.Count.Should().Be(2);
552+
}
553+
}
554+
555+
internal class SchemaVisitor : OpenApiVisitorBase
556+
{
557+
public List<string> Titles = new();
558+
559+
public override void Visit(OpenApiSchema schema)
560+
{
561+
Titles.Add(schema.Title);
562+
}
509563
}
510564
}

0 commit comments

Comments
 (0)