public void Can_clear_modification_function_mappings() { var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("S", "N", null, null, entityType); var function = new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()); var container = new EntityContainer("C", DataSpace.CSpace); container.AddEntitySetBase(entitySet); var entitySetMapping = new StorageEntitySetMapping( entitySet, new StorageEntityContainerMapping(container)); var functionMapping = new StorageModificationFunctionMapping( entitySet, entityType, function, Enumerable.Empty <StorageModificationFunctionParameterBinding>(), null, null); var entityFunctionMappings = new StorageEntityTypeModificationFunctionMapping(entityType, functionMapping, null, null); entitySetMapping.AddModificationFunctionMapping(entityFunctionMappings); Assert.Equal(1, entitySetMapping.ModificationFunctionMappings.Count()); entitySetMapping.ClearModificationFunctionMappings(); Assert.Equal(0, entitySetMapping.ModificationFunctionMappings.Count()); }
public void WriteMappingFragment_should_write_store_entity_set_name() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageEntitySetMapping = new StorageEntitySetMapping( entitySet, new StorageEntityContainerMapping(entityContainer)); StorageTypeMapping typeMapping = new StorageEntityTypeMapping(storageEntitySetMapping); var mappingFragment = new StorageMappingFragment(entitySet, typeMapping, false); fixture.Writer.WriteMappingFragmentElement(mappingFragment); Assert.Equal( @"<MappingFragment StoreEntitySet=""ES"" />", fixture.ToString()); }
private static void SetupMocksForTableChecking( Mock <DbCommand> dbCommandMock, Mock <DbConnection> connectionMock, Mock <InternalContext> internalContextMock) { var dataReader = Core.Common.Internal.Materialization.MockHelper.CreateDbDataReader(); dbCommandMock.Protected().Setup <DbParameter>("CreateDbParameter") .Returns(new Mock <DbParameter>().Object); dbCommandMock.Protected().Setup <DbParameterCollection>("DbParameterCollection") .Returns(new Mock <DbParameterCollection>().Object); dbCommandMock.Setup(m => m.ExecuteScalar()).Returns(0); dbCommandMock.Protected().Setup <DbDataReader>( "ExecuteDbDataReader", It.IsAny <CommandBehavior>()) .Returns(dataReader); connectionMock.Protected().Setup <DbCommand>("CreateDbCommand").Returns(dbCommandMock.Object); connectionMock.Setup(m => m.ConnectionString).Returns("FakeConnection"); connectionMock.Setup(m => m.DataSource).Returns("Foo"); connectionMock.Protected().Setup <DbProviderFactory>("DbProviderFactory").Returns(SqlClientFactory.Instance); var entityType = new EntityType( "FakeEntityType", "FakeNamespace", DataSpace.CSpace, new[] { "key" }, new EdmMember[] { new EdmProperty("key") }); var entitySet = new EntitySet("FakeSet", "FakeSchema", "FakeTable", null, entityType); var entityContainer = new EntityContainer("C", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var mockObjectContext = Core.Objects.MockHelper.CreateMockObjectContext <object>(); var storeItemCollectionMock = Mock.Get((StoreItemCollection)mockObjectContext.MetadataWorkspace.GetItemCollection(DataSpace.SSpace)); storeItemCollectionMock .Setup(m => m.GetItems <EntityContainer>()) .Returns( new ReadOnlyCollection <EntityContainer>( new List <EntityContainer> { entityContainer })); var clonedObjectContextMock = new Mock <ClonedObjectContext>(); clonedObjectContextMock.Setup(m => m.Connection).Returns(connectionMock.Object); clonedObjectContextMock.Setup(m => m.ObjectContext).Returns(new ObjectContextProxy(mockObjectContext)); internalContextMock.Setup(m => m.CodeFirstModel).Returns(new DbCompiledModel()); internalContextMock.Setup(m => m.ProviderName).Returns("System.Data.SqlClient"); internalContextMock.Setup(m => m.ObjectContext).Returns(mockObjectContext); internalContextMock.Setup(m => m.CreateObjectContextForDdlOps()).Returns(clonedObjectContextMock.Object); }
public void WriteEntitySetMappingElement_should_write_modification_function_mappings() { var fixture = new Fixture(); var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageEntitySetMapping = new StorageEntitySetMapping( entitySet, new StorageEntityContainerMapping(entityContainer)); var storageModificationFunctionMapping = new StorageModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), Enumerable.Empty <StorageModificationFunctionParameterBinding>(), null, null); storageEntitySetMapping.AddModificationFunctionMapping( new StorageEntityTypeModificationFunctionMapping( entityType, storageModificationFunctionMapping, storageModificationFunctionMapping, storageModificationFunctionMapping)); fixture.Writer.WriteEntitySetMappingElement(storageEntitySetMapping); Assert.Equal( @"<EntitySetMapping Name=""ES""> <EntityTypeMapping TypeName="".E""> <ModificationFunctionMapping> <InsertFunction FunctionName=""N.F"" /> <UpdateFunction FunctionName=""N.F"" /> <DeleteFunction FunctionName=""N.F"" /> </ModificationFunctionMapping> </EntityTypeMapping> </EntitySetMapping>", fixture.ToString()); }
public void SetReadOnly_is_called_on_child_mapping_items() { var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("S", "N", null, null, entityType); var function = new EdmFunction( "F", "N", DataSpace.CSpace, new EdmFunctionPayload { IsFunctionImport = true }); var container = new EntityContainer("C", DataSpace.CSpace); container.AddEntitySetBase(entitySet); container.AddFunctionImport(function); var entitySetMapping = new EntitySetMapping( entitySet, new EntityContainerMapping(container)); var functionMapping = new ModificationFunctionMapping( entitySet, entityType, function, Enumerable.Empty <ModificationFunctionParameterBinding>(), null, null); var entityFunctionMapping = new EntityTypeModificationFunctionMapping(entityType, functionMapping, null, null); entitySetMapping.AddModificationFunctionMapping(entityFunctionMapping); var entityTypeMapping = new EntityTypeMapping(entitySetMapping); entitySetMapping.AddTypeMapping(entityTypeMapping); Assert.False(entityTypeMapping.IsReadOnly); Assert.False(entityFunctionMapping.IsReadOnly); entitySetMapping.SetReadOnly(); Assert.True(entityTypeMapping.IsReadOnly); Assert.True(entityFunctionMapping.IsReadOnly); }
public void Can_get_rows_affected_parameter_name() { var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", null, null, entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var storageModificationFunctionMapping = new StorageModificationFunctionMapping( entitySet, entityType, new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()), Enumerable.Empty <StorageModificationFunctionParameterBinding>(), new FunctionParameter("rows_affected", new TypeUsage(), ParameterMode.Out), null); Assert.Equal("rows_affected", storageModificationFunctionMapping.RowsAffectedParameterName); }
public void SetReadOnly_is_called_on_child_mapping_items() { var entityType = new EntityType("ET", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", "T", "Q", entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var function = new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()); var parameterBindings = new[] { new ModificationFunctionParameterBinding( new FunctionParameter(), new ModificationFunctionMemberPath(Enumerable.Empty <EdmMember>(), null), true) }; var rowsAffectedParameter = new FunctionParameter("rows_affected", new TypeUsage(), ParameterMode.Out); var resultBindings = new[] { new ModificationFunctionResultBinding( "C", EdmProperty.CreatePrimitive( "P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String))) }; var mapping = new ModificationFunctionMapping( entitySet, entityType, function, parameterBindings, rowsAffectedParameter, resultBindings); Assert.False(mapping.IsReadOnly); parameterBindings.Each(b => Assert.False(b.IsReadOnly)); resultBindings.Each(b => Assert.False(b.IsReadOnly)); mapping.SetReadOnly(); Assert.True(mapping.IsReadOnly); parameterBindings.Each(b => Assert.True(b.IsReadOnly)); resultBindings.Each(b => Assert.True(b.IsReadOnly)); }
public void Can_add_get_remove_modification_function_mappings() { var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("S", "N", null, null, entityType); var function = new EdmFunction( "F", "N", DataSpace.CSpace, new EdmFunctionPayload { IsFunctionImport = true }); var container = new EntityContainer("C", DataSpace.CSpace); container.AddEntitySetBase(entitySet); container.AddFunctionImport(function); var entitySetMapping = new EntitySetMapping( entitySet, new EntityContainerMapping(container)); var functionMapping = new ModificationFunctionMapping( entitySet, entityType, function, Enumerable.Empty <ModificationFunctionParameterBinding>(), null, null); var entityFunctionMappings = new EntityTypeModificationFunctionMapping(entityType, functionMapping, null, null); entitySetMapping.AddModificationFunctionMapping(entityFunctionMappings); Assert.Same(entityFunctionMappings, entitySetMapping.ModificationFunctionMappings.Single()); entitySetMapping.RemoveModificationFunctionMapping(entityFunctionMappings); Assert.Empty(entitySetMapping.ModificationFunctionMappings); }
public void Cannot_remove_modification_function_mapping_when_read_only() { var entityType = new EntityType("E", "N", DataSpace.CSpace); var entitySet = new EntitySet("S", "N", null, null, entityType); var function = new EdmFunction( "F", "N", DataSpace.CSpace, new EdmFunctionPayload { IsFunctionImport = true }); var container = new EntityContainer("C", DataSpace.CSpace); container.AddEntitySetBase(entitySet); container.AddFunctionImport(function); var entitySetMapping = new EntitySetMapping( entitySet, new EntityContainerMapping(container)); var functionMapping = new ModificationFunctionMapping( entitySet, entityType, function, Enumerable.Empty <ModificationFunctionParameterBinding>(), null, null); var entityFunctionMappings = new EntityTypeModificationFunctionMapping(entityType, functionMapping, null, null); entitySetMapping.AddModificationFunctionMapping(entityFunctionMappings); entitySetMapping.SetReadOnly(); Assert.Equal( Strings.OperationOnReadOnlyItem, Assert.Throws <InvalidOperationException>( () => entitySetMapping.RemoveModificationFunctionMapping(entityFunctionMappings)).Message); }
public void Can_retrieve_properties() { var entityType = new EntityType("ET", "N", DataSpace.CSpace); var entitySet = new EntitySet("ES", "S", "T", "Q", entityType); var entityContainer = new EntityContainer("EC", DataSpace.SSpace); entityContainer.AddEntitySetBase(entitySet); var function = new EdmFunction("F", "N", DataSpace.SSpace, new EdmFunctionPayload()); var parameterBindings = new[] { new ModificationFunctionParameterBinding( new FunctionParameter(), new ModificationFunctionMemberPath(Enumerable.Empty <EdmMember>(), null), true) }; var rowsAffectedParameter = new FunctionParameter("rows_affected", new TypeUsage(), ParameterMode.Out); var resultBindings = new[] { new ModificationFunctionResultBinding( "C", EdmProperty.CreatePrimitive( "P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String))) }; var mapping = new ModificationFunctionMapping( entitySet, entityType, function, parameterBindings, rowsAffectedParameter, resultBindings); Assert.Same(rowsAffectedParameter, mapping.RowsAffectedParameter); Assert.Same(function, mapping.Function); Assert.Equal(parameterBindings, mapping.ParameterBindings); Assert.Equal(resultBindings, mapping.ResultBindings); }