package nl.minicom.gitolite.manager.models; import java.util.Iterator; import java.util.SortedSet; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import com.google.common.collect.Sets; public class IdentifiableTest { private Group group1; private Group group2; private User user1; private User user2; @Before public void setUp() { group1 = new Group("@group1", new Recorder()); group2 = new Group("@group2", new Recorder()); user1 = new User("user1", new Recorder()); user2 = new User("user2", new Recorder()); } @Test public void testComparatorWithGroupsOnly() { SortedSet<Identifiable> identifiables = Sets.newTreeSet(Identifiable.SORT_BY_TYPE_AND_NAME); identifiables.add(group2); identifiables.add(group1); assertSequence(identifiables, group1, group2); } @Test public void testComparatorWithUsersOnly() { SortedSet<Identifiable> identifiables = Sets.newTreeSet(Identifiable.SORT_BY_TYPE_AND_NAME); identifiables.add(user2); identifiables.add(user1); assertSequence(identifiables, user1, user2); } @Test public void testComparatorWithUsersAndGroups() { SortedSet<Identifiable> identifiables = Sets.newTreeSet(Identifiable.SORT_BY_TYPE_AND_NAME); identifiables.add(group2); identifiables.add(user2); identifiables.add(group1); identifiables.add(user1); assertSequence(identifiables, group1, group2, user1, user2); } private void assertSequence(SortedSet<Identifiable> elements, Identifiable... order) { Assert.assertEquals(order.length, elements.size()); Iterator<Identifiable> iter = elements.iterator(); for (Identifiable item : order) { Assert.assertEquals(item, iter.next()); } } }