[gom] tests: Add test for IS [NOT] NULL filters
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gom] tests: Add test for IS [NOT] NULL filters
- Date: Fri, 10 Apr 2015 13:12:19 +0000 (UTC)
commit f2ef936eace226b6178eb0690ee09b5af155e07a
Author: Alexander Larsson <alexl redhat com>
Date: Fri Apr 10 14:44:35 2015 +0200
tests: Add test for IS [NOT] NULL filters
https://bugzilla.gnome.org/show_bug.cgi?id=747618
tests/test-gom-find-specific.c | 113 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 112 insertions(+), 1 deletions(-)
---
diff --git a/tests/test-gom-find-specific.c b/tests/test-gom-find-specific.c
index 439d560..97f343a 100644
--- a/tests/test-gom-find-specific.c
+++ b/tests/test-gom-find-specific.c
@@ -66,7 +66,8 @@ static struct {
} values[] = {
{ "84947", "tt2483070", 4, 1, "New York Sour" },
{ "84947", "tt2778300", 4, 2, "Resignation" },
- { "84947", "tt3767076", 5, 2, "The Good Listener" }
+ { "84947", "tt3767076", 5, 2, "The Good Listener" },
+ { "84947", "tt3767078", 5, 3, NULL }
};
static void
@@ -644,6 +645,114 @@ find_glob (void)
free_memory_db (adapter, repository);
}
+static void
+find_null (void)
+{
+ GError *error = NULL;
+ GValue value = { 0, };
+ GomFilter *filter1, *filter2, *filter3;
+ char *s1, *s2;
+ GomResource *resource;
+ EpisodeResource *eres;
+ GomAdapter *adapter;
+ GomRepository *repository;
+
+ create_memory_db (&adapter, &repository);
+
+ /* Season Number */
+ g_value_init (&value, G_TYPE_INT64);
+ g_value_set_int64 (&value, values[3].season_number);
+ filter1 = gom_filter_new_eq (EPISODE_TYPE_RESOURCE,
+ EPISODE_COLUMN_SEASON_NUMBER,
+ &value);
+ g_value_unset (&value);
+
+ /* NULL name */
+ filter2 = gom_filter_new_is_null (EPISODE_TYPE_RESOURCE,
+ EPISODE_COLUMN_EPISODE_NAME);
+
+ /* Season and NULL name */
+ filter3 = gom_filter_new_and (filter1, filter2);
+ g_object_unref (filter1);
+ g_object_unref (filter2);
+
+ resource = gom_repository_find_one_sync (repository,
+ EPISODE_TYPE_RESOURCE,
+ filter3,
+ &error);
+ g_assert_no_error (error);
+ g_assert (resource);
+ g_object_unref (filter3);
+ eres = EPISODE_RESOURCE (resource);
+
+ g_object_get(eres,
+ EPISODE_COLUMN_SERIES_ID, &s1,
+ EPISODE_COLUMN_IMDB_ID, &s2,
+ NULL);
+ g_object_unref(eres);
+
+ g_assert_cmpstr (s1, ==, values[3].series_id);
+ g_assert_cmpstr (s2, ==, values[3].imdb_id);
+ g_free (s1);
+ g_free (s2);
+
+ free_memory_db (adapter, repository);
+}
+
+static void
+find_not_null (void)
+{
+ GError *error = NULL;
+ GValue value = { 0, };
+ GomFilter *filter1, *filter2, *filter3;
+ char *s1, *s2;
+ GomResource *resource;
+ EpisodeResource *eres;
+ GomAdapter *adapter;
+ GomRepository *repository;
+
+ create_memory_db (&adapter, &repository);
+
+ /* Season Number */
+ g_value_init (&value, G_TYPE_INT64);
+ g_value_set_int64 (&value, values[2].season_number);
+ filter1 = gom_filter_new_eq (EPISODE_TYPE_RESOURCE,
+ EPISODE_COLUMN_SEASON_NUMBER,
+ &value);
+ g_value_unset (&value);
+
+ /* NULL name */
+ filter2 = gom_filter_new_is_not_null (EPISODE_TYPE_RESOURCE,
+ EPISODE_COLUMN_EPISODE_NAME);
+
+ /* Season and NULL name */
+ filter3 = gom_filter_new_and (filter1, filter2);
+ g_object_unref (filter1);
+ g_object_unref (filter2);
+
+ resource = gom_repository_find_one_sync (repository,
+ EPISODE_TYPE_RESOURCE,
+ filter3,
+ &error);
+ g_assert_no_error (error);
+ g_assert (resource);
+ g_object_unref (filter3);
+ eres = EPISODE_RESOURCE (resource);
+
+ g_object_get(eres,
+ EPISODE_COLUMN_SERIES_ID, &s1,
+ EPISODE_COLUMN_IMDB_ID, &s2,
+ NULL);
+ g_object_unref(eres);
+
+ g_assert_cmpstr (s1, ==, values[2].series_id);
+ g_assert_cmpstr (s2, ==, values[2].imdb_id);
+ g_free (s1);
+ g_free (s2);
+
+ free_memory_db (adapter, repository);
+}
+
gint
main (gint argc, gchar *argv[])
{
@@ -654,6 +763,8 @@ main (gint argc, gchar *argv[])
g_test_add_func ("/GomRepository/find-specific-and-fullv", find_specific_and_fullv);
g_test_add_func ("/GomRepository/find-specific-ensure-priorities", find_specific_ensure_priorities);
g_test_add_func ("/GomRepository/find-glob", find_glob);
+ g_test_add_func ("/GomRepository/find-null", find_null);
+ g_test_add_func ("/GomRepository/find-not-null", find_not_null);
gMainLoop = g_main_loop_new (NULL, FALSE);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]