package org.pitest.mutationtest.build;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
import org.pitest.mutationtest.MutationMetaData;
public class AnalyisPriorityComparatorTest {
private final AnalysisPriorityComparator testee = new AnalysisPriorityComparator();
@Test
public void shouldPrioritiseLargestFirst() {
final MutationAnalysisUnit a = unit(1);
final MutationAnalysisUnit b = unit(2);
final MutationAnalysisUnit c = unit(3);
final List<MutationAnalysisUnit> actual = Arrays.asList(a, b, c);
Collections.sort(actual, this.testee);
assertEquals(Arrays.asList(c, b, a), actual);
}
@Test
public void shouldPreserveCorrectOrder() {
final MutationAnalysisUnit a = unit(3);
final MutationAnalysisUnit b = unit(2);
final MutationAnalysisUnit c = unit(1);
final List<MutationAnalysisUnit> actual = Arrays.asList(a, b, c);
Collections.sort(actual, this.testee);
assertEquals(Arrays.asList(a, b, c), actual);
}
private MutationAnalysisUnit unit(final int count) {
return new MutationAnalysisUnit() {
@Override
public int priority() {
return count;
}
@Override
public String toString() {
return "" + count;
}
@Override
public MutationMetaData call() throws Exception {
return null;
}
};
}
}