public void CreateComplexTypeWith_OneToOne_NavigationProperty() { // Arrange ODataModelBuilder builder = new ODataModelBuilder(); builder.EntityType <Customer>().HasKey(c => c.CustomerId); ComplexTypeConfiguration <Order> order = builder.ComplexType <Order>(); order.HasRequired(o => o.Customer); // Act IEdmModel model = builder.GetEdmModel(); // Assert IEdmEntityType customerType = Assert.Single(model.SchemaElements.OfType <IEdmEntityType>()); Assert.Equal("Microsoft.AspNet.OData.Test.Builder.TestModels.Customer", customerType.FullName()); Assert.Equal("CustomerId", customerType.DeclaredKey.Single().Name); Assert.Single(customerType.DeclaredProperties); Assert.Empty(customerType.NavigationProperties()); IEdmComplexType orderType = Assert.Single(model.SchemaElements.OfType <IEdmComplexType>()); Assert.Equal("Microsoft.AspNet.OData.Test.Builder.TestModels.Order", orderType.FullName()); IEdmNavigationProperty navProperty = Assert.Single(orderType.NavigationProperties()); Assert.Equal(EdmMultiplicity.One, navProperty.TargetMultiplicity()); Assert.Equal("Customer", navProperty.Name); Assert.True(navProperty.Type.IsEntity()); Assert.Same(customerType, navProperty.Type.Definition); }