summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMaciej Piechotka <uzytkownik2@gmail.com>2011-08-17 21:42:56 +0100
committerMaciej Piechotka <uzytkownik2@gmail.com>2011-08-17 21:42:56 +0100
commit663d02a6f84048290b94569ab08bf97d15ce4ce1 (patch)
treef6c9c0bf01ffaf8c2528d1d4c7940761f6b1d3a0 /tests
parente6fc195b449f1462bd6eea962799b814ad2c519b (diff)
downloadlibgee-663d02a6f84048290b94569ab08bf97d15ce4ce1.tar.gz
Add filter tests
Diffstat (limited to 'tests')
-rw-r--r--tests/testcollection.vala37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/testcollection.vala b/tests/testcollection.vala
index 246b94b..fa5304d 100644
--- a/tests/testcollection.vala
+++ b/tests/testcollection.vala
@@ -49,6 +49,7 @@ public abstract class CollectionTests : Gee.TestCase {
add_test ("[Collection] foreach", test_foreach);
add_test ("[Collection] map", test_map);
add_test ("[Collection] scan", test_scan);
+ add_test ("[Collection] filter", test_filter);
}
protected Collection<string> test_collection;
@@ -863,5 +864,41 @@ public abstract class CollectionTests : Gee.TestCase {
assert (two);
assert (three);
}
+
+ public void test_filter () {
+ assert (test_collection.add ("one"));
+ assert (test_collection.add ("two"));
+ assert (test_collection.add ("three"));
+
+ bool one = false;
+ bool two = false;
+ bool three = false;
+
+ var iter = test_collection.iterator().filter ((str) => {
+ if (str == "one") {
+ assert (!one);
+ one = true;
+ } else if (str == "two") {
+ assert (!two);
+ two = true;
+ } else if (str == "three") {
+ assert (!three);
+ three = true;
+ } else {
+ assert_not_reached ();
+ }
+ return str != "two";
+ });
+
+ assert (!iter.valid);
+
+ int j = 0;
+ while (iter.next ())
+ j++;
+ assert (j == 2);
+ assert (one);
+ assert (two);
+ assert (three);
+ }
}