public void HasInverseNavigationProperty_checks_preconditions() { var navigationProperty = typeof(LightweighEntity).GetDeclaredProperty("PrivateNavigationProperty"); var lightweightConfiguration = new ConventionNavigationPropertyConfiguration( new NavigationPropertyConfiguration(navigationProperty), new ModelConfiguration()); Assert.Throws <ArgumentNullException>( () => lightweightConfiguration.HasInverseNavigationProperty(null)); }
public void HasInverseNavigationProperty_sets_the_InverseNavigationProperty() { var navigationProperty = typeof(LightweighEntity).GetDeclaredProperty("ValidNavigationProperty"); var configuration = new NavigationPropertyConfiguration(navigationProperty); var modelConfiguration = new ModelConfiguration(); var lightweightConfiguration = new ConventionNavigationPropertyConfiguration(configuration, modelConfiguration); var inverseNavigationProperty1 = typeof(LightweighEntity).GetDeclaredProperty("ValidInverseNavigationProperty"); lightweightConfiguration.HasInverseNavigationProperty(p => inverseNavigationProperty1); Assert.Same(inverseNavigationProperty1, configuration.InverseNavigationProperty); var inverseNavigationProperty2 = typeof(LightweighEntity).GetDeclaredProperty("PrivateNavigationProperty"); configuration.InverseNavigationProperty = inverseNavigationProperty2; lightweightConfiguration.HasInverseNavigationProperty(p => inverseNavigationProperty1); Assert.Same(inverseNavigationProperty2, configuration.InverseNavigationProperty); }
public void HasInverseNavigationProperty_throws_on_itself() { var navigationProperty = typeof(LightweighEntity).GetDeclaredProperty("PrivateNavigationProperty"); var configuration = new NavigationPropertyConfiguration(navigationProperty); var lightweightConfiguration = new ConventionNavigationPropertyConfiguration(configuration, new ModelConfiguration()); Assert.Equal( Strings.NavigationInverseItself(navigationProperty.Name, navigationProperty.DeclaringType), Assert.Throws <InvalidOperationException>( () => lightweightConfiguration.HasInverseNavigationProperty(p => p)).Message); }
public void Methods_dont_throw_if_configuration_is_null() { var config = new ConventionNavigationPropertyConfiguration(null, null); Assert.Null(config.ClrPropertyInfo); config.HasConstraint <IndependentConstraintConfiguration>(); config.HasDeleteAction(OperationAction.Cascade); config.HasInverseEndMultiplicity(RelationshipMultiplicity.ZeroOrOne); config.HasInverseNavigationProperty(p => new MockPropertyInfo()); config.IsDeclaringTypePrincipal(true); config.HasRelationshipMultiplicity(RelationshipMultiplicity.ZeroOrOne); }
public void HasInverseNavigationProperty_throws_on_invalid_nagivation_property() { var navigationProperty = typeof(LightweighEntity).GetDeclaredProperty("ValidNavigationProperty"); var lightweightConfiguration = new ConventionNavigationPropertyConfiguration( new NavigationPropertyConfiguration(navigationProperty), new ModelConfiguration()); var inverseNavigationProperty = typeof(LightweighEntity).GetDeclaredProperty("InvalidNavigationProperty"); Assert.Equal( Strings.LightweightEntityConfiguration_InvalidNavigationProperty(inverseNavigationProperty.Name), Assert.Throws <InvalidOperationException>( () => lightweightConfiguration.HasInverseNavigationProperty(p => inverseNavigationProperty)).Message); }
public void HasInverseNavigationProperty_throws_on_nonmatching_nagivation_property() { var navigationProperty = typeof(LightweighEntity).GetDeclaredProperty("UnrelatedNavigationProperty"); var configuration = new NavigationPropertyConfiguration(navigationProperty); var lightweightConfiguration = new ConventionNavigationPropertyConfiguration(configuration, new ModelConfiguration()); var inverseNavigationProperty = typeof(LightweighEntity).GetDeclaredProperty("ValidNavigationProperty"); Assert.Equal( Strings.LightweightEntityConfiguration_MismatchedInverseNavigationProperty( typeof(ConventionNavigationPropertyConfigurationTests), navigationProperty.Name, typeof(LightweighEntity), inverseNavigationProperty.Name), Assert.Throws <InvalidOperationException>( () => lightweightConfiguration.HasInverseNavigationProperty(p => inverseNavigationProperty)).Message); }
public void HasInverseNavigationProperty_throws_on_incompatible_multiplicity() { var navigationProperty = typeof(LightweighEntity).GetDeclaredProperty("ValidNavigationProperty"); var configuration = new NavigationPropertyConfiguration(navigationProperty); var modelConfiguration = new ModelConfiguration(); var lightweightConfiguration = new ConventionNavigationPropertyConfiguration(configuration, modelConfiguration); var inverseNavigationProperty = typeof(LightweighEntity).GetDeclaredProperty("ValidInverseNavigationProperty"); lightweightConfiguration.HasInverseEndMultiplicity(RelationshipMultiplicity.Many); Assert.Equal( Strings.LightweightNavigationPropertyConfiguration_IncompatibleMultiplicity( "*", typeof(LightweighEntity).Name + "." + "ValidInverseNavigationProperty", typeof(LightweighEntity).FullName), Assert.Throws <InvalidOperationException>( () => lightweightConfiguration.HasInverseNavigationProperty(p => inverseNavigationProperty)).Message); }