public void SettingBaseType_UpdatesBaseTypeConfigured() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); ComplexTypeConfiguration derivedComplex = builder.AddComplexType(typeof(DerivedComplexType)); ComplexTypeConfiguration baseComplex = builder.AddComplexType(typeof(BaseComplexType)); // Act derivedComplex.DerivesFrom(baseComplex); // Assert Assert.False(baseComplex.BaseTypeConfigured); Assert.True(derivedComplex.BaseTypeConfigured); }
public void RemoveStructuralType_RemovesComplexType() { ODataModelBuilder builder = new ODataModelBuilder(); builder.AddComplexType(typeof(Customer)); Assert.NotEmpty(builder.StructuralTypes); builder.RemoveStructuralType(typeof(Customer)); Assert.Empty(builder.StructuralTypes); }
public void BaseTypeConfigured_IsFalseByDefault() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); // Act ComplexTypeConfiguration derivedComplex = builder.AddComplexType(typeof(DerivedComplexType)); // Assert Assert.False(derivedComplex.BaseTypeConfigured); }
public void RemoveStructuralType_RemovesComplexType() { ODataModelBuilder builder = new ODataModelBuilder(); builder.AddComplexType(typeof(Customer)); Assert.NotEmpty(builder.StructuralTypes); builder.RemoveStructuralType(typeof(Customer)); Assert.Empty(builder.StructuralTypes); }
private static IEdmTypeConfiguration GetOrAddComplexType(ODataModelBuilder builder, Type type) { Type collectionType; type = GetEnumerableType(type, out collectionType); IEdmTypeConfiguration typeConfigurationOrNull = builder.GetTypeConfigurationOrNull(type); if (typeConfigurationOrNull == null) { builder.AddComplexType(type); typeConfigurationOrNull = builder.GetTypeConfigurationOrNull(type); } return(collectionType == null ? typeConfigurationOrNull : new CollectionTypeConfiguration(typeConfigurationOrNull, collectionType)); }
public void CreateEdmModel_WithSingleton_CanAddBindingPath_ToNavigationProperty_WithComplex() { // Arrange ODataModelBuilder builder = ODataModelBuilderMocks.GetModelBuilderMock <ODataModelBuilder>(); var motorcycle = builder.AddEntityType(typeof(Motorcycle)); var myMotor = builder.AddSingleton("MyMotor", motorcycle); var manufacturer = builder.AddComplexType(typeof(MotorcycleManufacturer)); var address = builder.AddEntityType(typeof(ManufacturerAddress)); motorcycle.AddComplexProperty(typeof(Motorcycle).GetProperty("Manufacturer")); var navProperty = manufacturer.AddNavigationProperty(typeof(Manufacturer).GetProperty("Address"), EdmMultiplicity.One); var addresses = builder.AddEntitySet("Addresses", address); myMotor.AddBinding(navProperty, addresses, new List <MemberInfo> { typeof(Motorcycle).GetProperty("Manufacturer"), typeof(Manufacturer).GetProperty("Address") }); // Act IEdmModel model = builder.GetEdmModel(); // Assert var motorcycleEdmType = model.AssertHasEntityType(typeof(Motorcycle)); Assert.Empty(motorcycleEdmType.NavigationProperties()); var manufacturerEdmType = model.AssertHasComplexType(typeof(MotorcycleManufacturer)); var edmNavProperty = manufacturerEdmType.AssertHasNavigationProperty(model, "Address", typeof(ManufacturerAddress), isNullable: false, multiplicity: EdmMultiplicity.One); var myMotorSingleton = model.EntityContainer.FindSingleton("MyMotor"); Assert.NotNull(myMotorSingleton); var bindings = myMotorSingleton.FindNavigationPropertyBindings(edmNavProperty); var binding = Assert.Single(bindings); Assert.Equal("Address", binding.NavigationProperty.Name); Assert.Equal("Addresses", binding.Target.Name); Assert.Equal("Manufacturer/Address", binding.Path.Path); }