private static MetadataWorkspace CreateMetadataWorkspace(XDocument cSpaceCsdl, Assembly assembly, bool isPOCO) { var workspace = new MetadataWorkspace(); EdmItemCollection edmItemCollection; using (var csdlReader = cSpaceCsdl.CreateReader()) { edmItemCollection = new EdmItemCollection(new XmlReader[] { csdlReader }); } workspace.RegisterItemCollection(edmItemCollection); // assembly can actually be an AssemblyBuilder. The following line ensures that we are // using the actual assembly otherwise an Assert in ObjectItemAttributeAssemblyLoader.LoadType // will fire. assembly = assembly.GetTypes().First().Assembly; var objectItemCollection = new ObjectItemCollection(); if (isPOCO) { objectItemCollection.LoadFromAssembly(assembly, edmItemCollection); } else { objectItemCollection.LoadFromAssembly(assembly); } workspace.RegisterItemCollection(objectItemCollection); return(workspace); }
public void Can_load_entity_with_property_of_enum_type_from_different_assembly() { const bool isPOCO = true; var enumTypeCsdl = XDocument.Parse( @"<Schema xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"" Namespace=""EnumModel""> <EnumType Name=""Enum"" IsFlags=""false"" /> </Schema>"); var entityTypeCsdl = XDocument.Parse( @"<Schema xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"" Namespace=""EnumModel""> <EntityContainer Name=""EnumModelContainer""> <EntitySet Name=""Entity"" EntityType=""EnumModel.Entity"" /> </EntityContainer> <EntityType Name=""Entity""> <Key> <PropertyRef Name=""Id"" /> </Key> <Property Name=""Id"" Nullable=""false"" Type=""Int32"" /> <Property Name=""EnumProperty"" Nullable=""false"" Type=""EnumModel.Enum"" /> </EntityType> </Schema>"); var assemblyWithEnumType = BuildAssembly(isPOCO, enumTypeCsdl); var assemblyWithEntityType = BuildAssembly(isPOCO, entityTypeCsdl); EdmItemCollection edmItemCollection; using (var enumTypeReader = enumTypeCsdl.CreateReader()) { using (var entityTypeReader = entityTypeCsdl.CreateReader()) { edmItemCollection = new EdmItemCollection( new[] { enumTypeReader, entityTypeReader }); } } var objectItemCollection = new ObjectItemCollection(); objectItemCollection.LoadFromAssembly(assemblyWithEnumType, edmItemCollection); objectItemCollection.LoadFromAssembly(assemblyWithEntityType, edmItemCollection); var workspace = new MetadataWorkspace( () => edmItemCollection, () => null, () => null, () => objectItemCollection); Assert.Equal( "EnumModel.Entity:EnumModel.Entity", workspace.GetMap("EnumModel.Entity", DataSpace.OSpace, DataSpace.OCSpace).Identity); }
public void Can_load_entity_with_property_of_enum_type_from_different_assembly() { const bool isPOCO = true; var enumTypeCsdl = XDocument.Parse( @"<Schema xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"" Namespace=""EnumModel""> <EnumType Name=""Enum"" IsFlags=""false"" /> </Schema>"); var entityTypeCsdl = XDocument.Parse( @"<Schema xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"" Namespace=""EnumModel""> <EntityContainer Name=""EnumModelContainer""> <EntitySet Name=""Entity"" EntityType=""EnumModel.Entity"" /> </EntityContainer> <EntityType Name=""Entity""> <Key> <PropertyRef Name=""Id"" /> </Key> <Property Name=""Id"" Nullable=""false"" Type=""Int32"" /> <Property Name=""EnumProperty"" Nullable=""false"" Type=""EnumModel.Enum"" /> </EntityType> </Schema>"); var assemblyWithEnumType = BuildAssembly(isPOCO, enumTypeCsdl); var assemblyWithEntityType = BuildAssembly(isPOCO, entityTypeCsdl); EdmItemCollection edmItemCollection; using (var enumTypeReader = enumTypeCsdl.CreateReader()) { using (var entityTypeReader = entityTypeCsdl.CreateReader()) { edmItemCollection = new EdmItemCollection( new[] { enumTypeReader, entityTypeReader }); } } var objectItemCollection = new ObjectItemCollection(); objectItemCollection.LoadFromAssembly(assemblyWithEnumType, edmItemCollection); objectItemCollection.LoadFromAssembly(assemblyWithEntityType, edmItemCollection); var workspace = new MetadataWorkspace( () => edmItemCollection, () => null, () => null, () => objectItemCollection); Assert.Equal( "EnumModel.Entity:EnumModel.Entity", workspace.GetMap("EnumModel.Entity", DataSpace.OSpace, DataSpace.OCSpace).Identity); }
private static MetadataWorkspace CreateMetadataWorkspace(XDocument cSpaceCsdl, Assembly assembly, bool isPOCO) { EdmItemCollection edmItemCollection; using (var csdlReader = cSpaceCsdl.CreateReader()) { edmItemCollection = new EdmItemCollection(new[] { csdlReader }); } // assembly can actually be an AssemblyBuilder. The following line ensures that we are // using the actual assembly otherwise an Assert in ObjectItemAttributeAssemblyLoader.LoadType // will fire. assembly = assembly.GetTypes().First().Assembly(); var objectItemCollection = new ObjectItemCollection(); if (isPOCO) { objectItemCollection.LoadFromAssembly(assembly, edmItemCollection); } else { objectItemCollection.LoadFromAssembly(assembly); } var workspace = new MetadataWorkspace( () => edmItemCollection, () => null, () => null, () => objectItemCollection); return workspace; }
public void LoadFromAssembly_does_not_perform_o_space_lookup_if_o_space_types_already_loaded() { var mockKnownAssemblies = new Mock<KnownAssembliesSet>(); var objectItemCollection = new ObjectItemCollection(new Mock<IViewAssemblyCache>().Object, mockKnownAssemblies.Object); objectItemCollection.OSpaceTypesLoaded = true; objectItemCollection.LoadFromAssembly(typeof(FactAttribute).Assembly); objectItemCollection.LoadFromAssembly( typeof(FactAttribute).Assembly, new EdmItemCollection(Enumerable.Empty<XmlReader>())); objectItemCollection.LoadFromAssembly( typeof(FactAttribute).Assembly, new EdmItemCollection(Enumerable.Empty<XmlReader>()), s => { }); KnownAssemblyEntry _; mockKnownAssemblies.Verify( m => m.TryGetKnownAssembly(It.IsAny<Assembly>(), It.IsAny<object>(), It.IsAny<EdmItemCollection>(), out _), Times.Never()); }
public void LoadFromAssembly_does_perform_o_space_lookup_if_o_space_types_not_already_loaded() { var mockKnownAssemblies = new Mock<KnownAssembliesSet>(); var objectItemCollection = new ObjectItemCollection(new Mock<IViewAssemblyCache>().Object, mockKnownAssemblies.Object); objectItemCollection.LoadFromAssembly(typeof(FactAttribute).Assembly); KnownAssemblyEntry _; mockKnownAssemblies.Verify( m => m.TryGetKnownAssembly(typeof(FactAttribute).Assembly, It.IsAny<object>(), It.IsAny<EdmItemCollection>(), out _)); }
public void LoadFromAssembly_three_arg_overload_checks_only_given_assembly_for_views() { var mockCache = new Mock<IViewAssemblyCache>(); var objectItemCollection = new ObjectItemCollection(mockCache.Object); objectItemCollection.LoadFromAssembly( typeof(object).Assembly, new EdmItemCollection(Enumerable.Empty<XmlReader>()), s => { }); mockCache.Verify(m => m.CheckAssembly(typeof(object).Assembly, false), Times.Once()); }
public void LoadFromAssembly_checks_only_given_assembly_for_views() { var mockCache = new Mock<IViewAssemblyCache>(); var objectItemCollection = new ObjectItemCollection(mockCache.Object); objectItemCollection.LoadFromAssembly(typeof(object).Assembly); mockCache.Verify(m => m.CheckAssembly(typeof(object).Assembly, false), Times.Once()); }
public void Three_arg_LoadFromAssembly_does_perform_o_space_lookup_if_o_space_types_not_already_loaded() { var mockKnownAssemblies = new Mock<KnownAssembliesSet>(); var objectItemCollection = new ObjectItemCollection(mockKnownAssemblies.Object); objectItemCollection.LoadFromAssembly( typeof(FactAttribute).Assembly(), new EdmItemCollection(Enumerable.Empty<XmlReader>()), s => { }); KnownAssemblyEntry _; mockKnownAssemblies.Verify( m => m.TryGetKnownAssembly(typeof(FactAttribute).Assembly(), It.IsAny<object>(), It.IsAny<EdmItemCollection>(), out _)); }