public void LoadFunctionDetails_returns_function_details() { var input = new List <object[]> { new object[] { "catalog", "dbo", "f1", "int", 1, 0, 0, 0, 0, DBNull.Value, DBNull.Value, "OUT" }, new object[] { DBNull.Value, "dbo", "f2", "int", 0, 1, 1, 1, 1, "Param", "nchar", "IN" } }; var loader = new EntityStoreSchemaGeneratorDatabaseSchemaLoaderFake( mockDataReaderFactory.CreateMockEntityCommand(input).Object); var results = loader.LoadFunctionDetails( new[] { new EntityStoreSchemaFilterEntry( null, null, null, EntityStoreSchemaFilterObjectTypes.Function, EntityStoreSchemaFilterEffect.Allow) }).ToArray(); Assert.Equal(2, results.Length); Assert.Equal("f1", results[0].ProcedureName); Assert.Equal("f2", results[1].ProcedureName); }
public void LoadRelationships_returns_sorted_relationships_details() { var input = new List <object[]> { new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 4, "relationship1", "4", false }, new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 1, "relationship1", "6", false }, new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 1, "relationship1", "2", false }, new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 1, "a-relationship", "2", false } }; var loader = new EntityStoreSchemaGeneratorDatabaseSchemaLoaderFake( mockDataReaderFactory.CreateMockEntityCommand(input).Object); var results = loader.LoadRelationships( new[] { new EntityStoreSchemaFilterEntry( null, null, null, EntityStoreSchemaFilterObjectTypes.Table, EntityStoreSchemaFilterEffect.Allow), }).ToArray(); Assert.Equal(4, results.Length); Assert.True( input .OrderBy(t => t[9]) .ThenBy(t => t[10]) .ThenBy(t => t[8]) .Zip(results, (i, r) => i[9] == r["RelationshipName"] && i[10] == r["RelationshipId"] && (int)i[8] == (int)r["Ordinal"]) .All(z => z) ); }
public void LoadStoreSchema_returns_initialized_StoreSchemaInstance() { var tableCommand = mockDataReaderFactory.CreateMockEntityCommand( new List <object[]> { new object[] { "catalog", "dbo", "table", "Id", 1, false, "int", 4, 0, 0, 0, true, true, true } }); var viewCommand = mockDataReaderFactory.CreateMockEntityCommand( new List <object[]> { new object[] { "catalog", "dbo", "view", "Id", 1, false, "int", 4, 0, 0, 0, true, true, true } }); var relationshipCommand = mockDataReaderFactory.CreateMockEntityCommand( new List <object[]> { new object[] { "catalog", "dbo", "source", "Id", "catalog", "schema", "target", "Id", 0, "relationship", "RelationshipId", false } }); var functionCommand = mockDataReaderFactory.CreateMockEntityCommand( new List <object[]> { new object[] { DBNull.Value, "dbo", "f2", "int", 0, 1, 1, 1, 1, "Param", "nchar", "IN" } }); var tvfReturnTypeCommand = mockDataReaderFactory.CreateMockEntityCommand( new List <object[]> { new object[] { "catalog", "dbo", "function", "Id", 1, false, "int", 4, 0, 0, 0, true, true, true } }); var commands = new[] { tableCommand, viewCommand, relationshipCommand, functionCommand, tvfReturnTypeCommand }; var storeSchemaDetails = new EntityStoreSchemaGeneratorDatabaseSchemaLoaderFake(commands.Select(c => c.Object).ToArray()) .LoadStoreSchemaDetails(new List <EntityStoreSchemaFilterEntry>()); Assert.NotNull(storeSchemaDetails); Assert.Equal("table", storeSchemaDetails.TableDetails.Single().TableName); Assert.Equal("view", storeSchemaDetails.ViewDetails.Single().TableName); Assert.Equal("relationship", storeSchemaDetails.RelationshipDetails.Single().RelationshipName); Assert.Equal("f2", storeSchemaDetails.FunctionDetails.Single().ProcedureName); Assert.Equal("function", storeSchemaDetails.TVFReturnTypeDetails.Single().TableName); }
public void LoadStoreSchema_returns_initialized_StoreSchemaInstance() { var tableCommand = mockDataReaderFactory.CreateMockEntityCommand( new List<object[]> { new object[] { "catalog", "dbo", "table", "Id", 1, false, "int", 4, 0, 0, 0, true, true, true } }); var viewCommand = mockDataReaderFactory.CreateMockEntityCommand( new List<object[]> { new object[] { "catalog", "dbo", "view", "Id", 1, false, "int", 4, 0, 0, 0, true, true, true } }); var relationshipCommand = mockDataReaderFactory.CreateMockEntityCommand( new List<object[]> { new object[] { "catalog", "dbo", "source", "Id", "catalog", "schema", "target", "Id", 0, "relationship", "RelationshipId", false } }); var functionCommand = mockDataReaderFactory.CreateMockEntityCommand( new List<object[]> { new object[] { DBNull.Value, "dbo", "f2", "int", 0, 1, 1, 1, 1, "Param", "nchar", "IN" } }); var tvfReturnTypeCommand = mockDataReaderFactory.CreateMockEntityCommand( new List<object[]> { new object[] { "catalog", "dbo", "function", "Id", 1, false, "int", 4, 0, 0, 0, true, true, true } }); var commands = new[] { tableCommand, viewCommand, relationshipCommand, functionCommand, tvfReturnTypeCommand }; var storeSchemaDetails = new EntityStoreSchemaGeneratorDatabaseSchemaLoaderFake(commands.Select(c => c.Object).ToArray()) .LoadStoreSchemaDetails(new List<EntityStoreSchemaFilterEntry>()); Assert.NotNull(storeSchemaDetails); Assert.Equal("table", storeSchemaDetails.TableDetails.Single().TableName); Assert.Equal("view", storeSchemaDetails.ViewDetails.Single().TableName); Assert.Equal("relationship", storeSchemaDetails.RelationshipDetails.Single().RelationshipName); Assert.Equal("f2", storeSchemaDetails.FunctionDetails.Single().ProcedureName); Assert.Equal("function", storeSchemaDetails.TVFReturnTypeDetails.Single().TableName); }
public void LoadFunctionDetails_returns_function_details() { var input = new List<object[]> { new object[] { "catalog", "dbo", "f1", "int", 1, 0, 0, 0, 0, DBNull.Value, DBNull.Value, "OUT" }, new object[] { DBNull.Value, "dbo", "f2", "int", 0, 1, 1, 1, 1, "Param", "nchar", "IN" } }; var loader = new EntityStoreSchemaGeneratorDatabaseSchemaLoaderFake( mockDataReaderFactory.CreateMockEntityCommand(input).Object); var results = loader.LoadFunctionDetails( new[] { new EntityStoreSchemaFilterEntry( null, null, null, EntityStoreSchemaFilterObjectTypes.Function, EntityStoreSchemaFilterEffect.Allow) }).ToArray(); Assert.Equal(2, results.Length); Assert.Equal("f1", results[0].ProcedureName); Assert.Equal("f2", results[1].ProcedureName); }
public void LoadRelationships_returns_sorted_relationships_details() { var input = new List<object[]> { new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 4, "relationship1", "4", false }, new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 1, "relationship1", "6", false }, new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 1, "relationship1", "2", false }, new object[] { "c1", "s1", "t1", "Id", "c2", "s2", "t2", "Id", 1, "a-relationship", "2", false } }; var loader = new EntityStoreSchemaGeneratorDatabaseSchemaLoaderFake( mockDataReaderFactory.CreateMockEntityCommand(input).Object); var results = loader.LoadRelationships( new[] { new EntityStoreSchemaFilterEntry( null, null, null, EntityStoreSchemaFilterObjectTypes.Table, EntityStoreSchemaFilterEffect.Allow), }).ToArray(); Assert.Equal(4, results.Length); Assert.True( input .OrderBy(t => t[9]) .ThenBy(t => t[10]) .ThenBy(t => t[8]) .Zip(results, (i, r) => i[9] == r["RelationshipName"] && i[10] == r["RelationshipId"] && (int)i[8] == (int)r["Ordinal"]) .All(z => z) ); }