/** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @Override public int compare(Person person1, Person person2) { return comparePersonsByName(person1, person2); }
@Override public int compare(Provider provider1, Provider provider2) { // test for null cases (sorting them to be last in a list) boolean provider1IsNull = (provider1 == null || provider1.getPerson() == null); boolean provider2IsNull = (provider2 == null || provider2.getPerson() == null); if (provider1IsNull && provider2IsNull) { return 0; } else if (provider1IsNull) { return 1; } else if (provider2IsNull) { return -1; } // delegate to the person by name comparator return new PersonByNameComparator().compare(provider1.getPerson(), provider2.getPerson()); } }
/** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) * @should sort users by personNames */ @Override public int compare(User user1, User user2) { // test for null cases (sorting them to be last in a list) if (user1 == null) { return 1; } else if (user2 == null) { return -1; } // delegate to the personByNameComparator to sort by person names return PersonByNameComparator.comparePersonsByName(user1.getPerson(), user2.getPerson()); } }
/** * @see PersonByNameComparator#comparePersonsByName(Person,Person) */ @Test public void comparePersonsByName_shouldReturnZeroIfTheGivenNameMiddleNameAndFamilyNameMatch() { Person person1 = new Person(); person1.addName(new PersonName("givenName", "middleName", "familyName")); Person person2 = new Person(); person2.addName(new PersonName("givenName", "middleName", "familyName")); int actualValue = PersonByNameComparator.comparePersonsByName(person1, person2); Assert.assertTrue("Expected zero but it was: " + actualValue, actualValue == 0); }
@Test public void comparePersonsByName_shouldNotBeCaseSensitive() { Person person1 = new Person(); person1.addName(new PersonName("GIVENNAME", "MIDDLENAME", "FAMILYNAME")); Person person2 = new Person(); person2.addName(new PersonName("givenName", "middleName", "familyName")); int actualValue = PersonByNameComparator.comparePersonsByName(person1, person2); Assert.assertTrue("Expected zero but it was: " + actualValue, actualValue == 0); } }
/** * @see PersonByNameComparator#comparePersonsByName(Person,Person) */ @Test public void comparePersonsByName_shouldReturnPositiveIfPersonNameForPerson1ComesAfterThatOfPerson2() { Person person1 = new Person(); person1.addName(new PersonName("givenName", "middleNamf", "familyName")); Person person2 = new Person(); person2.addName(new PersonName("givenName", "middleName", "familyName")); int actualValue = PersonByNameComparator.comparePersonsByName(person1, person2); Assert.assertTrue("Expected a positive value but it was: " + actualValue, actualValue > 0); }
/** * @see PersonByNameComparator#comparePersonsByName(Person,Person) */ @Test public void comparePersonsByName_shouldReturnNegativeIfPersonNameForPerson1ComesBeforeThatOfPerson2() { Person person1 = new Person(); person1.addName(new PersonName("givenName", "middleName", "familyName")); Person person2 = new Person(); person2.addName(new PersonName("givenName", "middleNamf", "familyName")); int actualValue = PersonByNameComparator.comparePersonsByName(person1, person2); Assert.assertTrue("Expected a negative value but it was: " + actualValue, actualValue < 0); }