/**
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
* the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
*
* Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
* graphic logo is a trademark of OpenMRS Inc.
*/
package org.openmrs.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.openmrs.Person;
import org.openmrs.PersonName;
import org.openmrs.User;
/**
* This test class (should) contain tests for all of the {@link UserByNameComparator} methods.
*/
public class UserByNameComparatorTest {
/**
* This tests sorting with the {@link UserByNameComparator} given a set of users with
* personNames
*
* @see UserByNameComparator#compare(User,User)
*/
@Test
public void compare_shouldSortUsersByPersonNames() {
Person person1 = new Person();
person1.addName(new PersonName("givenName", "middleName", "familyName"));
User user1 = new User(person1);
Person person2 = new Person();
person2.addName(new PersonName("givenName", "middleNamf", "familyName"));
User user2 = new User(person2);
Person person3 = new Person();
person3.addName(new PersonName("givenName", "middleNamg", "familyName"));
User user3 = new User(person3);
Person person4 = new Person();
person4.addName(new PersonName("givenName", "middleNamh", "familyName"));
User user4 = new User(person4);
List<User> listToSort = new ArrayList<User>();
// add the users randomly
listToSort.add(user3);
listToSort.add(user1);
listToSort.add(user4);
listToSort.add(user2);
// sort the list with userByNameComparator
Collections.sort(listToSort, new UserByNameComparator());
// make sure that the users are sorted in the expected order
Iterator<User> it = listToSort.iterator();
Assert.assertTrue("Expected user1 to be the first in the sorted user list but wasn't", user1.equals(it.next()));
Assert.assertTrue("Expected user2 to be the second in the sorted user list but wasn't", user2.equals(it.next()));
Assert.assertTrue("Expected user3 to be the third in the sorted user list but wasn't", user3.equals(it.next()));
Assert.assertTrue("Expected user4 to be the fourth in the sorted user list but wasn't", user4.equals(it.next()));
;
}
}