Skip to content

Commit 8f43079

Browse files
committed
Add validation for server variable default value
1 parent 7bd19b9 commit 8f43079

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/Microsoft.OpenApi/Validations/Rules/OpenApiServerRules.cs

+22
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,31 @@ public static class OpenApiServerRules
2626
context.CreateError(nameof(ServerRequiredFields),
2727
String.Format(SRResource.Validation_FieldIsRequired, "url", "server"));
2828
}
29+
2930
context.Exit();
31+
context.Enter("variables");
32+
foreach (var variable in server.Variables)
33+
{
34+
context.Enter(variable.Key);
35+
ValidateServerVariableRequiredFields(context, variable.Value);
36+
context.Exit();
37+
}
3038
});
3139

3240
// add more rules
41+
42+
/// <summary>
43+
/// Validate required fields in server variable
44+
/// </summary>
45+
private static void ValidateServerVariableRequiredFields(IValidationContext context, OpenApiServerVariable item)
46+
{
47+
context.Enter("default");
48+
if (string.IsNullOrEmpty(item.Default))
49+
{
50+
context.CreateError("ServerVariableMustHaveDefaultValue",
51+
String.Format(SRResource.Validation_FieldIsRequired, "default", "variables"));
52+
}
53+
context.Exit();
54+
}
3355
}
3456
}

test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiDocumentTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1413,7 +1413,7 @@ public void ParseBasicDocumentWithServerVariableShouldSucceed()
14131413
});
14141414
}
14151415

1416-
[Fact(Skip = "This test requires a validation for the Server variable object to be added.")]
1416+
[Fact]
14171417
public void ParseBasicDocumentWithServerVariableAndNoDefaultShouldFail()
14181418
{
14191419
var openApiDoc = new OpenApiStringReader().Read("""

0 commit comments

Comments
 (0)