grim/gplate

Parents b4ebcc4c70f7
Children 7083fc1addf2
a good start at the transition of the variable tests, but not done yet...
--- a/tests/test-variables.c Fri Nov 13 18:36:36 2009 -0600
+++ b/tests/test-variables.c Sat Nov 14 01:25:28 2009 -0600
@@ -31,36 +31,6 @@
test_variable(var, "", "baz");
END_TEST
-START_TEST(test_variable_string)
- GPlateVariable *var = gplate_variable_new_from_string("foo", "bar");
-
- test_variable(var, "foo", "bar");
-END_TEST
-
-START_TEST(test_variable_boolean_true)
- GPlateVariable *var = gplate_variable_new_from_boolean("b1", TRUE);
-
- test_variable(var, "b1", "TRUE");
-END_TEST
-
-START_TEST(test_variable_boolean_false)
- GPlateVariable *var = gplate_variable_new_from_boolean("b2", FALSE);
-
- test_variable(var, "b2", "FALSE");
-END_TEST
-
-START_TEST(test_variable_int_negative)
- GPlateVariable *var = gplate_variable_new_from_integer("i1", -1000);
-
- test_variable(var, "i1", "-1000");
-END_TEST
-
-START_TEST(test_variable_int_positive)
- GPlateVariable *var = gplate_variable_new_from_integer("i2", 1000);
-
- test_variable(var, "i2", "1000");
-END_TEST
-
START_TEST(test_variable_float_negative)
GPlateVariable *var = gplate_variable_new_from_float("f1", -3.14f);
@@ -136,3 +106,119 @@
return s;
}
+
+/******************************************************************************
+ * Fixtures
+ *****************************************************************************/
+typedef struct {
+ GPlateVariable *variable;
+} GPlateVariableTestFixture;
+
+static void
+gplate_variable_test_teardown(GPlateVariableTestFixture *f, gconstpointer d) {
+ g_object_unref(G_OBJECT(f->variable));
+}
+
+/******************************************************************************
+ * Tests
+ *****************************************************************************/
+static void
+gplate_variable_test_string(GPlateVariableTestFixture *f, gconstpointer d) {
+ const gchar *input = (const gchar *)d;
+ const gchar *output = NULL;
+
+ f->variable = gplate_variable_new_from_string("test", input);
+
+ output = gplate_variable_get_value(f->variable);
+
+ g_assert_cmpstr(output, ==, input);
+}
+
+static void
+gplate_variable_test_boolean(GPlateVariableTestFixture *f, gconstpointer d) {
+ gboolean input = GPOINTER_TO_INT(d);
+ const gchar *output = NULL, *expected = NULL;
+
+ expected = (input) ? "TRUE" : "FALSE";
+
+ f->variable = gplate_variable_new_from_boolean("test", input);
+
+ output = gplate_variable_get_value(f->variable);
+
+ g_assert_cmpstr(output, ==, expected);
+}
+
+static void
+gplate_variable_test_integer(GPlateVariableTestFixture *f, gconstpointer d) {
+ gint input = GPOINTER_TO_INT(d), got = 0;
+ const gchar *output = NULL;
+
+ f->variable = gplate_variable_new_from_integer("test", input);
+
+ output = gplate_variable_get_value(f->variable);
+
+ g_assert(output != NULL);
+
+ got = atoi(output);
+ g_assert_cmpint(input, ==, got);
+}
+
+/******************************************************************************
+ * MIZAN
+ *****************************************************************************/
+gint
+main(gint argc, gchar **argv) {
+ g_test_init(&argc, &argv, NULL);
+
+ /* string tests */
+ g_test_add("/string/null", GPlateVariableTestFixture,
+ NULL,
+ NULL, gplate_variable_test_string,
+ gplate_variable_test_teardown);
+
+ g_test_add("/string/empty", GPlateVariableTestFixture,
+ "",
+ NULL, gplate_variable_test_string,
+ gplate_variable_test_teardown);
+
+ g_test_add("/string/ascii", GPlateVariableTestFixture,
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ NULL, gplate_variable_test_string,
+ gplate_variable_test_teardown);
+
+ g_test_add("/string/utf8", GPlateVariableTestFixture,
+ "☀☁☂☃☄",
+ NULL, gplate_variable_test_string,
+ gplate_variable_test_teardown);
+
+ /* boolean tests */
+ g_test_add("/boolean/true", GPlateVariableTestFixture,
+ GINT_TO_POINTER(TRUE),
+ NULL, gplate_variable_test_boolean,
+ gplate_variable_test_teardown);
+
+ g_test_add("/boolean/false", GPlateVariableTestFixture,
+ GINT_TO_POINTER(FALSE),
+ NULL, gplate_variable_test_boolean,
+ gplate_variable_test_teardown);
+
+ /* integer tests */
+ g_test_add("/integer/positive", GPlateVariableTestFixture,
+ GINT_TO_POINTER(1),
+ NULL, gplate_variable_test_integer,
+ gplate_variable_test_teardown);
+
+ g_test_add("/integer/zero", GPlateVariableTestFixture,
+ GINT_TO_POINTER(0),
+ NULL, gplate_variable_test_integer,
+ gplate_variable_test_teardown);
+
+ g_test_add("/integer/negative", GPlateVariableTestFixture,
+ GINT_TO_POINTER(-1),
+ NULL, gplate_variable_test_integer,
+ gplate_variable_test_teardown);
+
+ /* run 'em! */
+ return g_test_run();
+}
+