public DbSchema GetSchema(string tableName)
 {
     return(new DbSchema
     {
         TableName = tableName,
         Columns = _tableColumnExtractor.Extract(tableName),
         Indexes = _tableIndexExtractor.Extract(tableName)
     });
 }
Exemplo n.º 2
0
        public void Extract_ShouldReturn_CollectionOf_DbIndex()
        {
            var indexes = new[]
            {
                new DbIndex
                {
                    Name         = "idx_ID",
                    Position     = 1,
                    IsPrimaryKey = true,
                    IsUnique     = true,
                    IsClustered  = true,
                    IsNullable   = false,
                    ColumnName   = "ID"
                },
                new DbIndex
                {
                    Name         = "idx_Username",
                    Position     = 1,
                    IsPrimaryKey = false,
                    IsUnique     = false,
                    IsClustered  = false,
                    IsNullable   = true,
                    ColumnName   = "Username"
                }
            };
            var schema = TableIndexSchemaHelper.Build(indexes);

            _connection
            .Setup(x => x.GetOleDbSchemaTable(OleDbSchemaGuid.Indexes, new object[]
            {
                null, null, null, null, "test_1"
            }))
            .Returns(schema);

            var results = _extractor.Extract("test_1").ToArray();

            Assert.AreEqual(2, results.Length);

            for (var i = 0; i < indexes.Length; i++)
            {
                Assert.AreEqual(indexes[i].Name, results[i].Name);
                Assert.AreEqual(indexes[i].Position, results[i].Position);
                Assert.AreEqual(indexes[i].IsPrimaryKey, results[i].IsPrimaryKey);
                Assert.AreEqual(indexes[i].IsUnique, results[i].IsUnique);
                Assert.AreEqual(indexes[i].IsClustered, results[i].IsClustered);
                Assert.AreEqual(indexes[i].IsNullable, results[i].IsNullable);
                Assert.AreEqual(indexes[i].ColumnName, results[i].ColumnName);
            }
        }