public void GetTargetEntitySet_Returns_Null_IfNoMatchingTargetEntitySet() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); IEntityTypeConfiguration motorcycle = builder.AddEntity(typeof(Motorcycle)); NavigationPropertyConfiguration navigationProperty = motorcycle.AddNavigationProperty(typeof(Motorcycle).GetProperty("Manufacturer"), EdmMultiplicity.ZeroOrOne); // Act IEntitySetConfiguration targetEntitySet = AssociationSetDiscoveryConvention.GetTargetEntitySet(navigationProperty, builder); // Assert Assert.Null(targetEntitySet); }
public void GetTargetEntitySet_Returns_BaseTypeEntitySet_IfNoMatchingEntitysetForCurrentType() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); IEntityTypeConfiguration motorcycle = builder.AddEntity(typeof(Motorcycle)); IEntityTypeConfiguration manufacturer = builder.AddEntity(typeof(Manufacturer)); IEntityTypeConfiguration motorcycleManufacturer = builder.AddEntity(typeof(MotorcycleManufacturer)).DerivesFrom(manufacturer); NavigationPropertyConfiguration navigationProperty = motorcycle.AddNavigationProperty(typeof(Motorcycle).GetProperty("Manufacturer"), EdmMultiplicity.ZeroOrOne); IEntitySetConfiguration manufacturers = builder.AddEntitySet("manufacturers", manufacturer); // Act IEntitySetConfiguration targetEntitySet = AssociationSetDiscoveryConvention.GetTargetEntitySet(navigationProperty, builder); // Assert Assert.Equal(manufacturers, targetEntitySet); }
public void GetTargetEntitySet_Throws_IfTargetEntityTypeIsMissing() { // Arrange Mock <PropertyInfo> property = new Mock <PropertyInfo>(); property.Setup(p => p.PropertyType).Returns(typeof(Vehicle)); property.Setup(p => p.ReflectedType).Returns(typeof(AssociationSetDiscoveryConventionTest)); property.Setup(p => p.Name).Returns("SamplePropertyName"); Mock <IEntityTypeConfiguration> entityTypeConfiguration = new Mock <IEntityTypeConfiguration>(); NavigationPropertyConfiguration config = new NavigationPropertyConfiguration(property.Object, EdmMultiplicity.ZeroOrOne, entityTypeConfiguration.Object); Mock <ODataModelBuilder> modelBuilder = new Mock <ODataModelBuilder>(); // Act & Assert Assert.Throws <InvalidOperationException>( () => AssociationSetDiscoveryConvention.GetTargetEntitySet(config, modelBuilder.Object), "Could not find the target entity type for the navigation property 'SamplePropertyName' on entity type 'System.Web.Http.OData.Builder.Conventions.AssociationSetDiscoveryConventionTest'."); }