public static TestModel Initialize() { EdmModel model = new EdmModel(); var result = new TestModel(model); var productType = new EdmEntityType("TestModel", "Product"); result.ProductType = productType; EdmStructuralProperty idProperty = new EdmStructuralProperty(productType, "Id", EdmCoreModel.Instance.GetInt32(false)); productType.AddProperty(idProperty); productType.AddKeys(idProperty); productType.AddProperty(new EdmStructuralProperty(productType, "Name", EdmCoreModel.Instance.GetString(true))); model.AddElement(productType); EdmEntityContainer defaultContainer = new EdmEntityContainer("TestModel", "Default"); result.Container = defaultContainer; result.ProductsSet = defaultContainer.AddEntitySet("Products", productType); model.AddElement(defaultContainer); var derivedProductType = new EdmEntityType("TestModel", "DerivedProduct", productType); result.DerivedProductType = derivedProductType; EdmEntityType multipleKeyType = new EdmEntityType("TestModel", "MultipleKeyType"); result.MultipleKeyType = multipleKeyType; EdmStructuralProperty keyAProperty = new EdmStructuralProperty(multipleKeyType, "KeyA", EdmCoreModel.Instance.GetString(false)); EdmStructuralProperty keyBProperty = new EdmStructuralProperty(multipleKeyType, "KeyB", EdmCoreModel.Instance.GetInt32(false)); multipleKeyType.AddProperty(keyAProperty); multipleKeyType.AddProperty(keyBProperty); multipleKeyType.AddKeys(keyAProperty, keyBProperty); model.AddElement(multipleKeyType); result.MultipleKeysSet = defaultContainer.AddEntitySet("MultipleKeySet", multipleKeyType); EdmEntityType productTypeWithNavProps = new EdmEntityType("TestModel", "ProductWithNavProps", productType); result.ProductWithNavPropsType = productTypeWithNavProps; productTypeWithNavProps.AddUnidirectionalNavigation(new EdmNavigationPropertyInfo() { Name = "RelatedProducts", Target = productType, TargetMultiplicity = EdmMultiplicity.Many }); productTypeWithNavProps.AddUnidirectionalNavigation(new EdmNavigationPropertyInfo() { Name = "RelatedDerivedProduct", Target = derivedProductType, TargetMultiplicity = EdmMultiplicity.One }); model.AddElement(productTypeWithNavProps); EdmAction action = new EdmAction("TestModel", "SimpleAction", null/*returnType*/, true /*isBound*/, null /*entitySetPath*/); model.AddElement(action); defaultContainer.AddActionImport("SimpleAction", action); EdmAction action1 = new EdmAction("TestModel", "SimpleFunctionWithOverload", EdmCoreModel.Instance.GetInt32(false), true /*isbound*/, null); action1.AddParameter("p1", EdmCoreModel.Instance.GetInt32(false)); defaultContainer.AddActionImport("SimpleFunctionWithOverload", action1); EdmAction action2 = new EdmAction("TestModel", "SimpleFunctionWithOverload", EdmCoreModel.Instance.GetInt32(false), true /*isbound*/, null); action2.AddParameter("p1", EdmCoreModel.Instance.GetString(false)); defaultContainer.AddActionImport("SimpleFunctionWithOverload", action2); result.OneProductValue = BuildDefaultProductValue(productType); result.OneDerivedProductValue = BuildDefaultProductValue(derivedProductType); result.OneMultipleKeyValue = BuildDefaultMultipleKeyValue(model); result.OneProductWithNavPropsValue = BuildDefaultProductValue(productTypeWithNavProps); return result; }
protected ODataUriBuilderTestsBase() { this.defaultBaseUri = new Uri("http://odata.org/base/"); this.model = TestModel.BuildDefaultTestModel(); this.defaultProductInstance = TestModel.BuildDefaultProductValue(TestModel.GetEntityType(this.model, "TestModel.Product")); }