public void Can_get_navigation_and_can_try_get_navigation() { var customerType = new EntityType(typeof(Customer), new Model()); var customerKey = customerType.GetOrAddKey(customerType.GetOrAddProperty(Customer.IdProperty)); var orderType = new EntityType(typeof(Order), new Model()); var foreignKeyProperty = orderType.GetOrAddProperty(Order.CustomerIdProperty); var customerForeignKey = orderType.GetOrAddForeignKey(foreignKeyProperty, customerKey); var customerNavigation = orderType.GetOrAddNavigation("Customer", customerForeignKey, pointsToPrincipal: true); Assert.Same(customerNavigation, orderType.FindNavigation("Customer")); Assert.Same(customerNavigation, orderType.GetNavigation("Customer")); Assert.Null(orderType.FindNavigation("Nose")); Assert.Equal( Strings.NavigationNotFound("Nose", typeof(Order).FullName), Assert.Throws<ModelItemNotFoundException>(() => orderType.GetNavigation("Nose")).Message); }
public void Can_add_new_navigations_or_get_existing_navigations() { var customerType = new EntityType(typeof(Customer), new Model()); var customerKey = customerType.GetOrAddKey(customerType.GetOrAddProperty(Customer.IdProperty)); var orderType = new EntityType(typeof(Order), new Model()); var foreignKeyProperty = orderType.GetOrAddProperty(Order.CustomerIdProperty); var customerForeignKey = orderType.GetOrAddForeignKey(foreignKeyProperty, customerKey); var customerNavigation = orderType.GetOrAddNavigation("Customer", customerForeignKey, pointsToPrincipal: true); Assert.Equal("Customer", customerNavigation.Name); Assert.Same(orderType, customerNavigation.EntityType); Assert.Same(customerForeignKey, customerNavigation.ForeignKey); Assert.True(customerNavigation.PointsToPrincipal); Assert.False(customerNavigation.IsCollection()); Assert.Same(customerType, customerNavigation.GetTargetType()); Assert.Same(customerNavigation, orderType.GetOrAddNavigation("Customer", customerForeignKey, pointsToPrincipal: false)); Assert.True(customerNavigation.PointsToPrincipal); }