package pl.edu.icm.saos.webapp.court; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import com.tngtech.java.junit.dataprovider.DataProvider; import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; import pl.edu.icm.saos.persistence.model.SupremeCourtChamberDivision; import pl.edu.icm.saos.webapp.court.ScChamberDivisionComparator; /** * @author Łukasz Pawełczak * */ @RunWith(DataProviderRunner.class) public class ScChamberDivisionComparatorTest { ScChamberDivisionComparator scChamberDivisionComparator = new ScChamberDivisionComparator(); @DataProvider public static Object[][] scChamberDivisionPositiveData() { SupremeCourtChamberDivision divisionOne = new SupremeCourtChamberDivision(); divisionOne.setName("Wydział I"); SupremeCourtChamberDivision divisionTwo = new SupremeCourtChamberDivision(); divisionTwo.setName("Wydział III"); SupremeCourtChamberDivision divisionThree = new SupremeCourtChamberDivision(); divisionThree.setName("Wydział IX"); return new Object[][] { {divisionTwo, divisionOne}, {divisionThree, divisionOne}, {divisionThree, divisionTwo} }; } @DataProvider public static Object[][] scChamberDivisionNegativeData() { SupremeCourtChamberDivision divisionOne = new SupremeCourtChamberDivision(); divisionOne.setName("Wydział IX"); SupremeCourtChamberDivision divisionTwo = new SupremeCourtChamberDivision(); divisionTwo.setName("Wydział IV"); SupremeCourtChamberDivision divisionThree = new SupremeCourtChamberDivision(); divisionThree.setName("Wydział I"); return new Object[][] { {divisionTwo, divisionOne}, {divisionThree, divisionOne}, {divisionThree, divisionTwo} }; } @DataProvider public static Object[][] scChamberDivisionEqualsZeroData() { SupremeCourtChamberDivision divisionOne = new SupremeCourtChamberDivision(); divisionOne.setName("Wydział IX"); SupremeCourtChamberDivision divisionTwo = new SupremeCourtChamberDivision(); divisionTwo.setName("Wydział IX"); return new Object[][] { {divisionTwo, divisionOne} }; } //------------------------ TESTS -------------------------- @Test @UseDataProvider("scChamberDivisionPositiveData") public void compare_positive(SupremeCourtChamberDivision divisionOne, SupremeCourtChamberDivision divisionTwo) { assertTrue(0 < scChamberDivisionComparator.compare(divisionOne, divisionTwo)); } @Test @UseDataProvider("scChamberDivisionNegativeData") public void compare_negative(SupremeCourtChamberDivision divisionOne, SupremeCourtChamberDivision divisionTwo) { assertTrue(0 > scChamberDivisionComparator.compare(divisionOne, divisionTwo)); } @Test @UseDataProvider("scChamberDivisionEqualsZeroData") public void compare_equals_zero(SupremeCourtChamberDivision divisionOne, SupremeCourtChamberDivision divisionTwo) { assertTrue(0 == scChamberDivisionComparator.compare(divisionOne, divisionTwo)); } @Test public void compare_polish_letters() { SupremeCourtChamberDivision divisionOne = new SupremeCourtChamberDivision(); divisionOne.setName("Sąd apelacyjny w Łodzi"); SupremeCourtChamberDivision divisionTwo = new SupremeCourtChamberDivision(); divisionTwo.setName("Sąd apelacyjny w Przemyślu"); assertTrue(scChamberDivisionComparator.compare(divisionOne, divisionTwo) < 0); } @Test public void compare_one_division_contain_roman_number() { SupremeCourtChamberDivision divisionOne = new SupremeCourtChamberDivision(); divisionOne.setName("Wydział IX"); SupremeCourtChamberDivision divisionTwo = new SupremeCourtChamberDivision(); divisionTwo.setName("Wydział w poznaniu"); assertTrue(scChamberDivisionComparator.compare(divisionOne, divisionTwo) > 0); } @Test public void compare_both_divisions_dont_contain_roman_number_sort_alpabetically() { SupremeCourtChamberDivision divisionOne = new SupremeCourtChamberDivision(); divisionOne.setName("Sąd w Aninie"); SupremeCourtChamberDivision divisionTwo = new SupremeCourtChamberDivision(); divisionTwo.setName("Sąd w Białymstoku"); assertTrue(scChamberDivisionComparator.compare(divisionOne, divisionTwo) < 0); } }