Beispiel #1
0
        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);
        }
Beispiel #2
0
        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)
                );
        }
Beispiel #3
0
        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)
                );
        }