diff --git a/pom.xml b/pom.xml
index f56aaba..07fc03d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,8 @@
3.2.10
1.2
+
+ 3.9
@@ -77,7 +79,12 @@
de.alpharogroup
jobj-contract-verifier
${jobj-contract-verifier.version}
- test
+
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
@@ -91,7 +98,6 @@
jobj-contract-verifier
test
-
de.alpharogroup
@@ -111,6 +117,13 @@
test
+
+
+ org.apache.commons
+ commons-lang3
+ test
+
+
-
+
diff --git a/src/test/java/de/alpharogroup/collection/comparators/TripleComparator.java b/src/test/java/de/alpharogroup/collection/comparators/TripleComparator.java
new file mode 100644
index 0000000..3de7390
--- /dev/null
+++ b/src/test/java/de/alpharogroup/collection/comparators/TripleComparator.java
@@ -0,0 +1,57 @@
+/**
+ * The MIT License
+ *
+ * Copyright (C) 2015 Asterios Raptis
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package de.alpharogroup.collection.comparators;
+
+import java.util.Comparator;
+
+import org.apache.commons.lang3.builder.CompareToBuilder;
+
+import de.alpharogroup.collections.pairs.Triple;
+
+/**
+ * The class {@link TripleComparator} is a comparator for {@link Triple} objects.
+ *
+ * @param
+ * The type of the left content of this Triple.
+ * @param
+ * The type of the middle content of this Triple.
+ * @param
+ * The type of the right content of this Triple.
+ */
+public class TripleComparator implements Comparator>
+{
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int compare(final Triple o1, final Triple o2)
+ {
+ return new CompareToBuilder().append(o1.getLeft(), o2.getLeft())
+ .append(o1.getMiddle(), o2.getMiddle()).append(o1.getRight(), o2.getRight())
+ .toComparison();
+ }
+
+}
diff --git a/src/test/java/de/alpharogroup/collection/comparators/TripleComparatorTest.java b/src/test/java/de/alpharogroup/collection/comparators/TripleComparatorTest.java
new file mode 100644
index 0000000..72840d1
--- /dev/null
+++ b/src/test/java/de/alpharogroup/collection/comparators/TripleComparatorTest.java
@@ -0,0 +1,85 @@
+/**
+ * The MIT License
+ *
+ * Copyright (C) 2015 Asterios Raptis
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package de.alpharogroup.collection.comparators;
+
+import static org.testng.AssertJUnit.assertTrue;
+
+import org.meanbean.test.BeanTester;
+import org.testng.annotations.Test;
+
+import de.alpharogroup.collections.pairs.Triple;
+import de.alpharogroup.test.objects.Customer;
+import de.alpharogroup.test.objects.Employee;
+import de.alpharogroup.test.objects.Person;
+
+/**
+ * The unit test class for the class {@link TripleComparator}.
+ */
+public class TripleComparatorTest
+{
+
+ /** For use of the result of the comparator. */
+ int actual;
+
+ /** For use of the expected result. */
+ boolean expected;
+
+ /**
+ * Test method for {@link TripleComparator#compare(Object, Object)}
+ */
+ @Test
+ public final void testCompare()
+ {
+
+ final Person person = Person.builder().name("John").married(Boolean.FALSE).build();
+
+ final Employee employee = Employee.builder().id("20").person(person).build();
+
+ Customer customer = Customer.builder().build();
+
+ Triple o1 = Triple. builder()
+ .left(person).middle(employee).right(customer).build();
+
+ Triple o2 = Triple. builder()
+ .left(person).middle(employee).right(customer).build();
+
+ TripleComparator comparator = new TripleComparator<>();
+
+ actual = comparator.compare(o1, o2);
+ expected = actual == 0;
+ assertTrue(expected);
+ }
+
+ /**
+ * Test method for {@link TripleComparator}
+ */
+ @Test
+ public void testWithBeanTester()
+ {
+ final BeanTester beanTester = new BeanTester();
+ beanTester.testBean(TripleComparator.class);
+ }
+
+}