public void RemoveBaseTypeProperties_RemovesAllBaseTypePropertiesFromDerivedTypes() { var mockType1 = new MockType("Foo").Property <int>("P1"); var mockType2 = new MockType("Bar").BaseType(mockType1).Property <int>("P1").Property <int>("P2"); var mockType3 = new MockType("FooBar").BaseType(mockType2).Property <int>("P1").Property <int>("P2"); var mockAssembly = new MockAssembly(mockType1, mockType2, mockType3); HttpConfiguration configuration = new HttpConfiguration(); configuration.Services.Replace(typeof(IAssembliesResolver), new TestAssemblyResolver(mockAssembly)); var builder = new ODataConventionModelBuilder(configuration); var entity1 = builder.AddEntity(mockType1); entity1.AddProperty(mockType1.GetProperty("P1")); var entity2 = builder.AddEntity(mockType2).DerivesFrom(entity1); entity2.AddProperty(mockType2.GetProperty("P2")); var entity3 = builder.AddEntity(mockType3); entity3.AddProperty(mockType3.GetProperty("P1")); entity3.AddProperty(mockType3.GetProperty("P2")); builder.RemoveBaseTypeProperties(entity3, entity2); Assert.Empty(entity3.Properties); }
public void RemoveBaseTypeProperties_RemovesAllBaseTypePropertiesFromDerivedTypes() { var mockType1 = new MockType("Foo").Property<int>("P1"); var mockType2 = new MockType("Bar").BaseType(mockType1).Property<int>("P1").Property<int>("P2"); var mockType3 = new MockType("FooBar").BaseType(mockType2).Property<int>("P1").Property<int>("P2"); var mockAssembly = new MockAssembly(mockType1, mockType2, mockType3); HttpConfiguration configuration = new HttpConfiguration(); configuration.Services.Replace(typeof(IAssembliesResolver), new TestAssemblyResolver(mockAssembly)); var builder = new ODataConventionModelBuilder(configuration); var entity1 = builder.AddEntity(mockType1); entity1.AddProperty(mockType1.GetProperty("P1")); var entity2 = builder.AddEntity(mockType2).DerivesFrom(entity1); entity2.AddProperty(mockType2.GetProperty("P2")); var entity3 = builder.AddEntity(mockType3); entity3.AddProperty(mockType3.GetProperty("P1")); entity3.AddProperty(mockType3.GetProperty("P2")); builder.RemoveBaseTypeProperties(entity3, entity2); Assert.Empty(entity3.Properties); }