116
117
proxy_rows_setup, test_illegal_access, proxy_rows_teardown);
117
118
g_test_add (TXN_DOMAIN"/IllegalAccess", RowsFixture, 0,
118
119
txn_rows_setup, test_illegal_access, txn_rows_teardown);
121
g_test_add (SEQ_DOMAIN"/Sorted", RowsFixture, 0,
122
seq_rows_setup, test_sorted, seq_rows_teardown);
123
g_test_add (PROXY_DOMAIN"/Sorted", RowsFixture, 0,
124
proxy_rows_setup, test_sorted, proxy_rows_teardown);
125
g_test_add (TXN_DOMAIN"/Sorted", RowsFixture, 0,
126
txn_rows_setup, test_sorted, txn_rows_teardown);
430
438
g_test_trap_assert_failed ();
442
cmp_col_0 (GVariant **row1, GVariant **row2, gpointer user_data)
444
g_assert_cmpstr (user_data, ==, "test-user-data");
445
//g_debug ("CMP %i %i", g_variant_get_int32 (row1[0]), g_variant_get_int32 (row2[0]));
446
return g_variant_get_int32 (row2[0]) - g_variant_get_int32 (row1[0]);
450
test_sorted (RowsFixture *fix, gconstpointer data)
452
DeeModelIter *hter, *iter, *jter, *kter;
455
/* FINAL MODEL: [(28,s), (27,s), (26,s), (25,s)]
456
* ~= [hter, iter, jter, kter] */
458
/* Test find() with an empty model. With NULL was_found arg */
459
iter = dee_model_find_sorted (fix->model, cmp_col_0, "test-user-data", NULL,
461
g_assert (iter == dee_model_get_last_iter (fix->model));
463
/* Test find() with an empty model. With non-NULL was_found arg */
465
iter = dee_model_find_sorted (fix->model, cmp_col_0, "test-user-data", &was_found,
467
g_assert (!was_found);
468
g_assert (iter == dee_model_get_last_iter (fix->model));
470
/* Insert the first row */
471
iter = dee_model_insert_sorted (fix->model, cmp_col_0, "test-user-data",
473
g_assert (iter != dee_model_get_last_iter (fix->model));
474
g_assert (iter == dee_model_get_first_iter (fix->model));
477
kter = dee_model_insert_sorted (fix->model, cmp_col_0, "test-user-data",
479
g_assert (kter != dee_model_get_last_iter (fix->model));
480
g_assert (kter != dee_model_get_first_iter (fix->model));
481
g_assert (iter == dee_model_get_first_iter (fix->model));
482
g_assert (kter != iter);
484
g_assert_cmpint (2, ==, dee_model_get_n_rows (fix->model));
485
g_assert (kter == dee_model_next (fix->model, iter));
487
/* Test insert in between rows */
488
jter = dee_model_insert_sorted (fix->model, cmp_col_0, "test-user-data",
490
g_assert (jter != dee_model_get_last_iter (fix->model));
491
g_assert (jter != dee_model_get_first_iter (fix->model));
492
g_assert (iter == dee_model_get_first_iter (fix->model));
493
g_assert (jter != iter);
494
g_assert (jter != kter);
496
g_assert (jter == dee_model_next (fix->model, iter));
497
g_assert (kter == dee_model_next (fix->model, jter));
498
g_assert (dee_model_get_last_iter (fix->model) == dee_model_next (fix->model, kter));
501
hter = dee_model_insert_sorted (fix->model, cmp_col_0, "test-user-data",
503
g_assert (hter == dee_model_get_first_iter (fix->model));
504
g_assert (iter == dee_model_next (fix->model, hter));
506
g_assert_cmpint (4, ==, dee_model_get_n_rows (fix->model));
508
/* Test find() again now that we have data in the model */
509
DeeModelIter *result;
510
result = dee_model_find_sorted (fix->model, cmp_col_0, "test-user-data", NULL,
512
g_assert (result == dee_model_get_last_iter (fix->model));
513
result = dee_model_find_sorted (fix->model, cmp_col_0, "test-user-data", NULL,
515
g_assert (result == hter);
517
/* Test find(). With non-NULL was_found arg */
519
result = dee_model_find_sorted (fix->model, cmp_col_0, "test-user-data", &was_found,
521
g_assert (result == dee_model_get_last_iter (fix->model));
522
result = dee_model_find_sorted (fix->model, cmp_col_0, "test-user-data", &was_found,
524
g_assert (was_found);
525
g_assert (result == hter);