Skip to content

Commit 089a06f

Browse files
LuukN2commonsensesoftware
authored andcommitted
Removed test type_should_match_with_self_referencing_property_substitution.
Dependency resolving will always result in a dynamic type, even if clrtypes match. Changed dependentProperties from a dictionary of tuples to a list of tuples.
1 parent 64ea799 commit 089a06f

File tree

4 files changed

+8
-45
lines changed

4 files changed

+8
-45
lines changed

src/Common.OData.ApiExplorer/AspNet.OData/DefaultModelTypeBuilder.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public Type NewStructuredType( IEdmStructuredType structuredType, Type clrType,
6767
var structuralProperties = structuredType.Properties().ToDictionary( p => p.Name, StringComparer.OrdinalIgnoreCase );
6868
var clrTypeMatchesEdmType = true;
6969
var hasUnfinishedTypes = false;
70-
var dependentProperties = new Dictionary<string, Tuple<EdmTypeKey, bool>>();
70+
var dependentProperties = new List<Tuple<EdmTypeKey, bool, string>>();
7171

7272
foreach ( var property in clrType.GetProperties( bindingFlags ) )
7373
{
@@ -98,8 +98,8 @@ public Type NewStructuredType( IEdmStructuredType structuredType, Type clrType,
9898
{
9999
clrTypeMatchesEdmType = false;
100100
hasUnfinishedTypes = true;
101-
var keyTuple = new Tuple<EdmTypeKey, bool>( elementKey, true );
102-
dependentProperties.Add(property.Name, keyTuple );
101+
var dependencyTuple = new Tuple<EdmTypeKey, bool, string>( elementKey, true, property.Name );
102+
dependentProperties.Add( dependencyTuple );
103103
continue;
104104
}
105105

@@ -130,8 +130,8 @@ public Type NewStructuredType( IEdmStructuredType structuredType, Type clrType,
130130
{
131131
clrTypeMatchesEdmType = false;
132132
hasUnfinishedTypes = true;
133-
var keyTuple = new Tuple<EdmTypeKey, bool>( propertyTypeKey, false );
134-
dependentProperties.Add(property.Name, keyTuple );
133+
var dependencyTuple = new Tuple<EdmTypeKey, bool, string>( propertyTypeKey, false, property.Name );
134+
dependentProperties.Add( dependencyTuple );
135135
continue;
136136
}
137137
}
@@ -153,10 +153,9 @@ public Type NewStructuredType( IEdmStructuredType structuredType, Type clrType,
153153
{
154154
typeBuilder = CreateTypeBuilderFromSignature( signature );
155155
var newPropertyDependencies = new List<PropertyDependency>();
156-
foreach ( var name in dependentProperties.Keys )
156+
foreach ( var dependencyTuple in dependentProperties )
157157
{
158-
var keyTuple = dependentProperties[name];
159-
newPropertyDependencies.Add( new PropertyDependency( typeBuilder, keyTuple.Item1, name, keyTuple.Item2 ) );
158+
newPropertyDependencies.Add( new PropertyDependency( typeBuilder, dependencyTuple.Item1, dependencyTuple.Item2, dependencyTuple.Item3 ) );
160159
}
161160

162161
dependencies.Add( typeKey, newPropertyDependencies );

src/Common.OData.ApiExplorer/AspNet.OData/PropertyDependency.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal class PropertyDependency
1414
/// <param name="dependentOnTypeKey">The key of the type the property has a dependency on.</param>
1515
/// <param name="propertyName">The name of the property.</param>
1616
/// <param name="isCollection">Whether the property is a collection or not.</param>
17-
internal PropertyDependency( TypeBuilder dependentType, EdmTypeKey dependentOnTypeKey, string propertyName, bool isCollection )
17+
internal PropertyDependency( TypeBuilder dependentType, EdmTypeKey dependentOnTypeKey, bool isCollection, string propertyName )
1818
{
1919
Arg.NotNull<TypeBuilder>( dependentType, nameof(dependentType) );
2020
Arg.NotNull<EdmTypeKey>( dependentOnTypeKey, nameof( dependentOnTypeKey ) );

test/Microsoft.AspNet.OData.Versioning.ApiExplorer.Tests/AspNet.OData/DefaultModelTypeBuilderTest.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -132,24 +132,6 @@ public void type_should_match_edm_with_nested_entity_substitution()
132132
innerType.Should().HaveProperty<string>( nameof( Contact.LastName ) );
133133
}
134134

135-
[Fact]
136-
public void type_should_match_with_self_referencing_property_substitution()
137-
{
138-
// arrange
139-
var modelBuilder = new ODataConventionModelBuilder();
140-
141-
modelBuilder.EntitySet<Company>( "Companies" );
142-
143-
var context = NewContext( modelBuilder.GetEdmModel() );
144-
var originalType = typeof( Company );
145-
146-
//act
147-
var subsitutedType = originalType.SubstituteIfNecessary( context );
148-
149-
// assert
150-
subsitutedType.Should().Be( typeof( Company ) );
151-
}
152-
153135
[Fact]
154136
public void type_should_use_self_referencing_property_substitution()
155137
{

test/Microsoft.AspNetCore.OData.Versioning.ApiExplorer.Tests/AspNet.OData/DefaultModelTypeBuilderTest.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -132,24 +132,6 @@ public void type_should_match_edm_with_nested_entity_substitution()
132132
innerType.Should().HaveProperty<string>( nameof( Contact.LastName ) );
133133
}
134134

135-
[Fact]
136-
public void type_should_match_with_self_referencing_property_substitution()
137-
{
138-
// arrange
139-
var modelBuilder = new ODataConventionModelBuilder();
140-
141-
modelBuilder.EntitySet<Company>( "Companies" );
142-
143-
var context = NewContext( modelBuilder.GetEdmModel() );
144-
var originalType = typeof( Company );
145-
146-
//act
147-
var subsitutedType = originalType.SubstituteIfNecessary( context );
148-
149-
// assert
150-
subsitutedType.Should().Be( typeof( Company ) );
151-
}
152-
153135
[Fact]
154136
public void type_should_use_self_referencing_property_substitution()
155137
{

0 commit comments

Comments
 (0)