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