public void TestSchemaTable() { var query = "SELECT * FROM env();"; using (var connection = new MonetDbConnection(TestConnectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { // create table command.CommandText = query; using (var reader = command.ExecuteReader()) { while (reader.Read()) { var schema = reader.GetSchemaTable(); Assert.IsNotNull(schema); Assert.IsTrue(schema.Columns.Contains("name")); Assert.IsTrue(schema.Columns.Contains("value")); Assert.AreEqual(typeof (string), schema.Columns["name"].DataType); Assert.AreEqual(typeof (string), schema.Columns["value"].DataType); } } } } }
public void TestCreateInsertSelectDropTable() { // random table name var tableName = Guid.NewGuid().ToString(); // random integer value var value = new Random().Next(); // SQL scripts var createScript = string.Format("CREATE TABLE \"{0}\" (id int);", tableName); var insertScript = string.Format("INSERT INTO \"{0}\" VALUES({1});", tableName, value); var selectScript = string.Format("SELECT * FROM \"{0}\";", tableName); var dropScript = string.Format("DROP TABLE \"{0}\";", tableName); using (var connection = new MonetDbConnection(TestConnectionString)) { connection.Open(); using (var command = connection.CreateCommand()) { // create table command.CommandText = createScript; command.ExecuteNonQuery(); // insert into command.CommandText = insertScript; // rows affected 0 or 1 Assert.Contains(command.ExecuteNonQuery(), new[] {0, 1}); // select from command.CommandText = selectScript; var value2 = (int) command.ExecuteScalar(); Assert.AreEqual(value, value2); // drop table command.CommandText = dropScript; command.ExecuteNonQuery(); } } }