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"));
+}