[Groonga-commit] groonga/groonga [master] add tests for null value loading.

Zurück zum Archiv-Index

null+****@clear***** null+****@clear*****
2010年 7月 1日 (木) 12:07:35 JST


Kouhei Sutou	2010-07-01 03:07:35 +0000 (Thu, 01 Jul 2010)

  New Revision: 782895046c05ff90c25526c5a830bbd811f357f5

  Log:
    add tests for null value loading.

  Modified files:
    test/unit/core/test-command-load.c

  Modified: test/unit/core/test-command-load.c (+91 -0)
===================================================================
--- test/unit/core/test-command-load.c    2010-07-01 02:15:43 +0000 (b48b363)
+++ test/unit/core/test-command-load.c    2010-07-01 03:07:35 +0000 (1a3b21a)
@@ -28,6 +28,8 @@ void attributes_bool(void);
 void data_bool(void);
 void test_bool(gconstpointer data);
 void test_int32_key(void);
+void data_null(void);
+void test_null(gconstpointer data);
 
 static gchar *tmp_directory;
 
@@ -189,3 +191,92 @@ test_int32_key(void)
                           "]]",
                           send_command("select Students"));
 }
+
+void
+data_null(void)
+{
+#define ADD_DATUM(label, expected, load)                        \
+  gcut_add_datum(label,                                         \
+                 "expected", G_TYPE_STRING, expected,           \
+                 "load", G_TYPE_STRING, load,                   \
+                 NULL)
+
+  ADD_DATUM("string - null",
+            "[[[1],"
+              "[[\"_id\",\"UInt32\"],"
+               "[\"_key\",\"ShortText\"],"
+               "[\"scores\",\"Int32\"],"
+               "[\"nick\",\"ShortText\"]],"
+             "[1,\"Daijiro MORI\",[5,5,5],\"\"]]]",
+            "load --table Students --columns '_key, nick'\n"
+            "[\n"
+            "  [\"Daijiro MORI\", null]\n"
+            "]");
+  ADD_DATUM("string - empty string",
+            "[[[1],"
+              "[[\"_id\",\"UInt32\"],"
+               "[\"_key\",\"ShortText\"],"
+               "[\"scores\",\"Int32\"],"
+               "[\"nick\",\"ShortText\"]],"
+             "[1,\"Daijiro MORI\",[5,5,5],\"\"]]]",
+            "load --table Students --columns '_key, nick'\n"
+            "[\n"
+            "  [\"Daijiro MORI\", \"\"]\n"
+            "]");
+
+  ADD_DATUM("vector - empty null",
+            "[[[1],"
+              "[[\"_id\",\"UInt32\"],"
+               "[\"_key\",\"ShortText\"],"
+               "[\"scores\",\"Int32\"],"
+               "[\"nick\",\"ShortText\"]],"
+             "[1,\"Daijiro MORI\",[],\"morita\"]]]",
+            "load --table Students --columns '_key, scores'\n"
+            "[\n"
+            "  [\"Daijiro MORI\", null]\n"
+            "]");
+  ADD_DATUM("vector - empty string",
+            "[[[1],"
+              "[[\"_id\",\"UInt32\"],"
+               "[\"_key\",\"ShortText\"],"
+               "[\"scores\",\"Int32\"],"
+               "[\"nick\",\"ShortText\"]],"
+             "[1,\"Daijiro MORI\",[],\"morita\"]]]",
+            "load --table Students --columns '_key, scores'\n"
+            "[\n"
+            "  [\"Daijiro MORI\", \"\"]\n"
+            "]");
+  ADD_DATUM("vector - empty array",
+            "[[[1],"
+              "[[\"_id\",\"UInt32\"],"
+               "[\"_key\",\"ShortText\"],"
+               "[\"scores\",\"Int32\"],"
+               "[\"nick\",\"ShortText\"]],"
+             "[1,\"Daijiro MORI\",[],\"morita\"]]]",
+            "load --table Students --columns '_key, scores'\n"
+            "[\n"
+            "  [\"Daijiro MORI\", []]\n"
+            "]");
+
+#undef ADD_DATUM
+}
+
+void
+test_null(gconstpointer data)
+{
+  cut_omit("not implemented yet");
+
+  assert_send_command("table_create Students TABLE_HASH_KEY ShortText");
+  assert_send_command("column_create Students nick COLUMN_SCALAR ShortText");
+  assert_send_command("column_create Students scores COLUMN_VECTOR Int32");
+
+  cut_assert_equal_string("1",
+                          send_command("load --table Students\n"
+                                       "[{\"_key\": \"Daijiro MORI\", "
+                                         "\"nick\": \"morita\", "
+                                         "\"scores\": [5, 5, 5]}]"));
+  cut_assert_equal_string("1",
+                          send_command(gcut_data_get_string(data, "load")));
+  cut_assert_equal_string(gcut_data_get_string(data, "expected"),
+                          send_command("select Students"));
+}




Groonga-commit メーリングリストの案内
Zurück zum Archiv-Index