Skip to content

Commit 4c86e26

Browse files
committed
- adds unit tests for odata type cast path provider
Signed-off-by: Vincent Biret <[email protected]>
1 parent 9b99954 commit 4c86e26

File tree

1 file changed

+41
-16
lines changed

1 file changed

+41
-16
lines changed

test/Microsoft.OpenAPI.OData.Reader.Tests/Edm/ODataPathProviderTests.cs

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,29 +87,27 @@ public void GetPathsDoesntReturnPathsForCountWhenDisabled()
8787
Assert.NotNull(paths);
8888
Assert.Equal(3, paths.Count());
8989
}
90-
91-
[Theory]
92-
[InlineData("", false, true, 3)]
93-
[InlineData("", false, false, 4)]
94-
[InlineData(@"
95-
<Annotation Term=""Org.OData.Validation.V1.DerivedTypeConstraint"">
96-
<Collection>
97-
<String>NS.Customer</String>
98-
<String>NS.NiceCustomer</String>
99-
</Collection>
100-
</Annotation>", false, true, 6)]
101-
[InlineData("", true, false, 5)]
102-
[InlineData("", true, true, 4)]
103-
[InlineData(@"
90+
private const string derivedTypeAnnotation = @"
10491
<Annotation Term=""Org.OData.Validation.V1.DerivedTypeConstraint"">
10592
<Collection>
10693
<String>NS.Customer</String>
10794
<String>NS.NiceCustomer</String>
10895
</Collection>
109-
</Annotation>", true, true, 5)]
110-
public void GetOperationPathsForModelWithDerivedTypesConstraint(string annotation, bool getNavPropModel, bool requireConstraint, int expectedCount)
96+
</Annotation>";
97+
98+
[Theory]
99+
[InlineData(false, false, true, 3)]
100+
[InlineData(false, false, false, 4)]
101+
[InlineData(true, false, true, 6)]
102+
[InlineData(true, false, false, 6)]
103+
[InlineData(false, true, false, 5)]
104+
[InlineData(false, true, true, 4)]
105+
[InlineData(true, true, true, 5)]
106+
[InlineData(true, true, false, 5)]
107+
public void GetOperationPathsForModelWithDerivedTypesConstraint(bool addAnnotation, bool getNavPropModel, bool requireConstraint, int expectedCount)
111108
{
112109
// Arrange
110+
var annotation = addAnnotation ? derivedTypeAnnotation : string.Empty;
113111
IEdmModel model = getNavPropModel ? GetNavPropModel(annotation) : GetInheritanceModel(annotation);
114112
ODataPathProvider provider = new();
115113
var settings = new OpenApiConvertSettings
@@ -120,6 +118,33 @@ public void GetOperationPathsForModelWithDerivedTypesConstraint(string annotatio
120118
// Act
121119
var paths = provider.GetPaths(model, settings);
122120

121+
// Assert
122+
Assert.NotNull(paths);
123+
Assert.Equal(expectedCount, paths.Count());
124+
}
125+
[Theory]
126+
[InlineData(false, false, true, 4)]
127+
[InlineData(false, false, false, 6)]
128+
[InlineData(true, false, true, 6)]
129+
[InlineData(true, false, false, 6)]
130+
[InlineData(false, true, false, 5)]
131+
[InlineData(false, true, true, 5)]
132+
[InlineData(true, true, true, 5)]
133+
[InlineData(true, true, false, 5)]
134+
public void GetTypeCastPathsForModelWithDerivedTypesConstraint(bool addAnnotation, bool getNavPropModel, bool requireConstraint, int expectedCount)
135+
{
136+
// Arrange
137+
var annotation = addAnnotation ? derivedTypeAnnotation : string.Empty;
138+
IEdmModel model = getNavPropModel ? GetNavPropModel(annotation) : GetInheritanceModel(annotation);
139+
ODataPathProvider provider = new();
140+
var settings = new OpenApiConvertSettings
141+
{
142+
RequireDerivedTypesConstraintForODataTypeCastSegments = requireConstraint
143+
};
144+
145+
// Act
146+
var paths = provider.GetPaths(model, settings);
147+
123148
// Assert
124149
Assert.NotNull(paths);
125150
Assert.Equal(expectedCount, paths.Count());

0 commit comments

Comments
 (0)