[Groonga-commit] groonga/grnxx at 3d0e732 [master] Add a test for Column.

Back to archive index

susumu.yata null+****@clear*****
Fri Jul 4 18:41:39 JST 2014


susumu.yata	2014-07-04 18:41:39 +0900 (Fri, 04 Jul 2014)

  New Revision: 3d0e73212e146056dbb54817be6e33cc99f1fa7a
  https://github.com/groonga/grnxx/commit/3d0e73212e146056dbb54817be6e33cc99f1fa7a

  Message:
    Add a test for Column.

  Modified files:
    test/test_grnxx.cpp

  Modified: test/test_grnxx.cpp (+56 -0)
===================================================================
--- test/test_grnxx.cpp    2014-07-04 18:41:25 +0900 (513f3c0)
+++ test/test_grnxx.cpp    2014-07-04 18:41:39 +0900 (eb26a4d)
@@ -162,11 +162,67 @@ void test_table() {
   // TODO: create_cursor().
 }
 
+void test_column() {
+  grnxx::Error error;
+
+  auto db = grnxx::open_db(&error, "", grnxx::DBOptions());
+  assert(db);
+
+  auto table = db->create_table(&error, "Table", grnxx::TableOptions());
+  assert(table);
+
+  grnxx::Int row_id;
+  assert(table->insert_row(&error, grnxx::NULL_ROW_ID,
+                           grnxx::Datum(), &row_id));
+
+  auto bool_column = table->create_column(&error, "BoolColumn",
+                                          grnxx::BOOL_DATA,
+                                          grnxx::ColumnOptions());
+  assert(bool_column);
+  assert(bool_column->table() == table);
+  assert(bool_column->name() == "BoolColumn");
+  assert(bool_column->data_type() == grnxx::BOOL_DATA);
+  assert(!bool_column->has_key_attribute());
+  assert(bool_column->num_indexes() == 0);
+
+  auto int_column = table->create_column(&error, "IntColumn",
+                                         grnxx::INT_DATA,
+                                         grnxx::ColumnOptions());
+  assert(int_column);
+  assert(int_column->table() == table);
+  assert(int_column->name() == "IntColumn");
+  assert(int_column->data_type() == grnxx::INT_DATA);
+  assert(!int_column->has_key_attribute());
+  assert(int_column->num_indexes() == 0);
+
+  grnxx::Datum datum;
+
+  assert(bool_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::BOOL_DATA);
+  assert(!static_cast<grnxx::Bool>(datum));
+
+  assert(int_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::INT_DATA);
+  assert(static_cast<grnxx::Int>(datum) == 0);
+
+  assert(bool_column->set(&error, 1, grnxx::Bool(true)));
+  assert(int_column->set(&error, 1, grnxx::Int(123)));
+
+  assert(bool_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::BOOL_DATA);
+  assert(static_cast<grnxx::Bool>(datum));
+
+  assert(int_column->get(&error, 1, &datum));
+  assert(datum.type() == grnxx::INT_DATA);
+  assert(static_cast<grnxx::Int>(datum) == 123);
+}
+
 }  // namespace
 
 int main() {
   test_db();
   test_table();
+  test_column();
 
   return 0;
 }
-------------- next part --------------
HTML����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index