예제 #1
0
        public void GetSchema_allows_null()
        {
            using var connection = new SqliteConnection("Data Source=:memory:");

            var dataTable = connection.GetSchema(DbMetaDataCollectionNames.MetaDataCollections, null !);

            Assert.Equal(DbMetaDataCollectionNames.MetaDataCollections, dataTable.TableName);
        }
예제 #2
0
        public void GetSchema_ignores_case()
        {
            using var connection = new SqliteConnection("Data Source=:memory:");

            var dataTable = connection.GetSchema(DbMetaDataCollectionNames.MetaDataCollections.ToUpper());

            Assert.Equal(DbMetaDataCollectionNames.MetaDataCollections, dataTable.TableName);
        }
예제 #3
0
        public void GetSchema_throws_when_unknown_collection(string collectionName)
        {
            using var connection = new SqliteConnection("Data Source=:memory:");

            var ex = Assert.Throws <ArgumentException>(() => connection.GetSchema(collectionName));

            Assert.Equal(Resources.UnknownCollection(collectionName), ex.Message);
        }
예제 #4
0
        public void GetSchema_works_when_no_args()
        {
            using var connection = new SqliteConnection("Data Source=:memory:");

            var dataTable = connection.GetSchema();

            Assert.Equal(DbMetaDataCollectionNames.MetaDataCollections, dataTable.TableName);
        }
예제 #5
0
        public void GetSchema_throws_when_unknown_restrictions(string collectionName, int maxRestrictions)
        {
            using var connection = new SqliteConnection("Data Source=:memory:");

            var ex = Assert.Throws <ArgumentException>(
                () => connection.GetSchema(
                    collectionName,
                    Enumerable.Repeat <string?>(null, maxRestrictions + 1).ToArray()));

            Assert.Equal(Resources.TooManyRestrictions(collectionName), ex.Message);
        }
예제 #6
0
        public void GetSchema_ReservedWords_works()
        {
            using var connection = new SqliteConnection("Data Source=:memory:");
            if (new Version(connection.ServerVersion) < new Version(3, 24, 0))
            {
                // Skip. Native functions not available
                return;
            }

            var dataTable = connection.GetSchema(DbMetaDataCollectionNames.ReservedWords);

            Assert.Equal(DbMetaDataCollectionNames.ReservedWords, dataTable.TableName);
            Assert.Single(dataTable.Columns);
            Assert.Contains(
                dataTable.Rows.Cast <DataRow>(),
                r => r.Field <string>(DbMetaDataColumnNames.ReservedWord) == "SELECT");
        }
예제 #7
0
        public void GetSchema_works()
        {
            using var connection = new SqliteConnection("Data Source=:memory:");

            var dataTable = connection.GetSchema();

            Assert.Equal(DbMetaDataCollectionNames.MetaDataCollections, dataTable.TableName);
            Assert.Collection(
                dataTable.Columns.Cast <DataColumn>(),
                c => Assert.Equal(DbMetaDataColumnNames.CollectionName, c.ColumnName),
                c => Assert.Equal(DbMetaDataColumnNames.NumberOfRestrictions, c.ColumnName),
                c => Assert.Equal(DbMetaDataColumnNames.NumberOfIdentifierParts, c.ColumnName));
            Assert.Collection(
                dataTable.Rows.Cast <DataRow>().Select(r => r.ItemArray),
                r => Assert.Equal(new object[] { DbMetaDataCollectionNames.MetaDataCollections, 0, 0 }, r),
                r => Assert.Equal(new object[] { DbMetaDataCollectionNames.ReservedWords, 0, 0 }, r));
        }