BAEL-2324 sorting arrays

This commit is contained in:
Emily Millard 2018-12-16 18:18:13 -07:00
parent 84ea0625b1
commit 64dd23f8f0
2 changed files with 16 additions and 36 deletions

View File

@ -7,6 +7,14 @@ public class Employee implements Serializable {
private int id;
private String name;
public Employee() {
}
public Employee(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}

View File

@ -5,18 +5,20 @@ import org.junit.Before;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.stream.IntStream;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
public class ArraySortUnitTest {
private Employee[] employees;
private int[] numbers;
private String[] strings;
private Employee john = new Employee(6, "John");
private Employee mary = new Employee(3, "Mary");
private Employee david = new Employee(4, "David");
@Before
public void setup() {
createEmployeesArray();
@ -25,13 +27,7 @@ public class ArraySortUnitTest {
}
private void createEmployeesArray() {
employees = new Employee[5];
Employee employee;
for (int i = 1; i <= employees.length; i++) {
employee = new Employee(i, "Emp" + i);
employees[i - 1] = employee;
}
Collections.shuffle(Arrays.asList(employees));
employees = new Employee[]{john, mary, david};
}
private void createNumbersArray() {
@ -74,45 +70,21 @@ public class ArraySortUnitTest {
public void givenObjectArray_whenSortingAscending_thenCorrectlySorted() {
Arrays.sort(employees, Comparator.comparing(Employee::getName));
Employee[] sorted = new Employee[]{
new Employee(1, "Emp1"),
new Employee(2, "Emp2"),
new Employee(3, "Emp3"),
new Employee(4, "Emp4"),
new Employee(5, "Emp5")
};
assertEquals(sorted[0].getId(), employees[0].getId());
assertArrayEquals(new Employee[]{david, john, mary}, employees);
}
@Test
public void givenObjectArray_whenSortingDescending_thenCorrectlySorted() {
Arrays.sort(employees, Comparator.comparing(Employee::getName).reversed());
Employee[] sorted = new Employee[]{
new Employee(5, "Emp5"),
new Employee(4, "Emp4"),
new Employee(3, "Emp3"),
new Employee(2, "Emp2"),
new Employee(1, "Emp1")
};
assertEquals(sorted[0].getId(), employees[0].getId());
assertArrayEquals(new Employee[]{mary, john, david}, employees);
}
@Test
public void givenObjectArray_whenSortingMultipleAttributesAscending_thenCorrectlySorted() {
Arrays.sort(employees, Comparator.comparing(Employee::getName).thenComparing(Employee::getId));
Employee[] sorted = new Employee[]{
new Employee(1, "Emp1"),
new Employee(2, "Emp2"),
new Employee(3, "Emp3"),
new Employee(4, "Emp4"),
new Employee(5, "Emp5")
};
assertEquals(sorted[0].getId(), employees[0].getId());
assertArrayEquals(new Employee[]{david, john, mary}, employees);
}
}