aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDanny van Heumen <danny@dannyvanheumen.nl>2014-08-22 20:16:46 +0200
committerDanny van Heumen <danny@dannyvanheumen.nl>2014-08-22 20:16:46 +0200
commit675a42c932a1999b4bff9b11f33601b114877fd9 (patch)
tree07e0bdca4d14640fa444f75c82e48886a4c7f2d6 /test
parente820f0a41dbfaa4f88911f243dd69df86bc15bdc (diff)
parentcd3fef9832ea0eebb2b3a1cbf327629607f3301a (diff)
downloadjitsi-675a42c932a1999b4bff9b11f33601b114877fd9.zip
jitsi-675a42c932a1999b4bff9b11f33601b114877fd9.tar.gz
jitsi-675a42c932a1999b4bff9b11f33601b114877fd9.tar.bz2
Fix contract violation of GroupNode's node comparator.
Diffstat (limited to 'test')
-rw-r--r--test/net/java/sip/communicator/impl/gui/main/contactlist/GroupNodeTest.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/test/net/java/sip/communicator/impl/gui/main/contactlist/GroupNodeTest.java b/test/net/java/sip/communicator/impl/gui/main/contactlist/GroupNodeTest.java
new file mode 100644
index 0000000..d03d101
--- /dev/null
+++ b/test/net/java/sip/communicator/impl/gui/main/contactlist/GroupNodeTest.java
@@ -0,0 +1,89 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package net.java.sip.communicator.impl.gui.main.contactlist;
+
+import junit.framework.*;
+import net.java.sip.communicator.impl.gui.main.contactlist.GroupNode.NodeComparator;
+import net.java.sip.communicator.service.gui.*;
+
+public class GroupNodeTest
+ extends TestCase
+{
+
+ public void testNodeComparatorUnknownsAtTheEnd()
+ {
+ ContactListNode unknown = new ContactListNode()
+ {
+ @Override
+ public int getSourceIndex()
+ {
+ return -1;
+ }
+ };
+ ContactListNode node = new ContactListNode()
+ {
+ @Override
+ public int getSourceIndex()
+ {
+ return 1;
+ }
+ };
+ NodeComparator comparator = new GroupNode.NodeComparator();
+ Assert.assertEquals(comparator.compare(unknown, node),
+ -1 * comparator.compare(node, unknown));
+ Assert.assertEquals(1, comparator.compare(unknown, node));
+ Assert.assertEquals(-1, comparator.compare(node, unknown));
+ }
+
+ public void testNodeComparatorNormalNodes()
+ {
+ ContactListNode node1 = new ContactListNode()
+ {
+ @Override
+ public int getSourceIndex()
+ {
+ return 4;
+ }
+ };
+ ContactListNode node2 = new ContactListNode()
+ {
+ @Override
+ public int getSourceIndex()
+ {
+ return 7;
+ }
+ };
+ NodeComparator comparator = new GroupNode.NodeComparator();
+ Assert.assertEquals(comparator.compare(node1, node2),
+ -1 * comparator.compare(node2, node1));
+ Assert.assertEquals(-1, comparator.compare(node1, node2));
+ Assert.assertEquals(1, comparator.compare(node2, node1));
+ }
+
+ public void testNodeComparatorSymmetryForUnknownNodes()
+ {
+ ContactListNode unknown1 = new ContactListNode()
+ {
+ @Override
+ public int getSourceIndex()
+ {
+ return -1;
+ }
+ };
+ ContactListNode unknown2 = new ContactListNode()
+ {
+ @Override
+ public int getSourceIndex()
+ {
+ return -1;
+ }
+ };
+ NodeComparator comparator = new GroupNode.NodeComparator();
+ Assert.assertEquals(comparator.compare(unknown1, unknown2),
+ -1 * comparator.compare(unknown2, unknown1));
+ }
+}