package pl.edu.icm.saos.webapp.court; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.when; import java.util.Arrays; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import pl.edu.icm.saos.persistence.model.CommonCourt; import pl.edu.icm.saos.persistence.model.CommonCourtDivision; import pl.edu.icm.saos.persistence.repository.CcDivisionRepository; import pl.edu.icm.saos.persistence.repository.CommonCourtRepository; /** * @author Łukasz Pawełczak * */ @RunWith(MockitoJUnitRunner.class) public class CcListServiceTest { @InjectMocks private CcListService ccListService = new CcListService(); @Mock private SimpleEntityConverter simpleEntityConverter; @Mock private SimpleCommonCourtConverter simpleCommonCourtConverter; @Mock private CommonCourtRepository commonCourtRepository; @Mock private CcDivisionRepository ccDivisionRepository; //------------------------ TESTS -------------------------- @Test public void findCommonCourts_correct_order() { //given CommonCourt commonCourtOne = new CommonCourt(); commonCourtOne.setCode("0510"); commonCourtOne.setName("Sąd w Aninie"); CommonCourt commonCourtTwo = new CommonCourt(); commonCourtTwo.setCode("0520"); commonCourtTwo.setName("Sąd w Łodzi"); CommonCourt commonCourtThree = new CommonCourt(); commonCourtThree.setCode("0530"); commonCourtThree.setName("Sąd w Ryczywołach"); SimpleCommonCourt simpleCommonCourtOne = new SimpleCommonCourt(); simpleCommonCourtOne.setName("Sąd w Aninie"); SimpleCommonCourt simpleCommonCourtTwo = new SimpleCommonCourt(); simpleCommonCourtTwo.setName("Sąd w Łodzi"); SimpleCommonCourt simpleCommonCourtThree = new SimpleCommonCourt(); simpleCommonCourtThree.setName("Sąd w Ryczywołach"); List<CommonCourt> courtsWrongOrder = Arrays.asList(commonCourtThree, commonCourtOne, commonCourtTwo); List<CommonCourt> courtsRightOrder = Arrays.asList(commonCourtOne, commonCourtTwo, commonCourtThree); when(commonCourtRepository.findAll()).thenReturn(courtsWrongOrder); when(simpleCommonCourtConverter.convertCommonCourts(courtsRightOrder)) .thenReturn(Arrays.asList(simpleCommonCourtOne, simpleCommonCourtTwo, simpleCommonCourtThree)); //when List<SimpleCommonCourt> courts = ccListService.findCommonCourts(); //then assertEquals(3, courts.size()); assertEquals(courts.get(0).getName(), commonCourtOne.getName()); assertEquals(courts.get(1).getName(), commonCourtTwo.getName()); assertEquals(courts.get(2).getName(), commonCourtThree.getName()); } @Test public void findCcDivisions_correct_order() { //given CommonCourtDivision ccDivisionOne = new CommonCourtDivision(); ccDivisionOne.setCode("0001"); ccDivisionOne.setName("I Wydział Cywilny"); CommonCourtDivision ccDivisionTwo = new CommonCourtDivision(); ccDivisionTwo.setCode("0002"); ccDivisionTwo.setName("IV Wydział Karny"); CommonCourtDivision ccDivisionThree = new CommonCourtDivision(); ccDivisionThree.setCode("0003"); ccDivisionThree.setName("IX Wydział Penitencjarny i Nadzoru nad Wykonywaniem Orzeczeń Karnych"); SimpleEntity simpleCcDivisionOne = new SimpleEntity(); simpleCcDivisionOne.setName("I Wydział Cywilny"); SimpleEntity simpleCcDivisionTwo = new SimpleEntity(); simpleCcDivisionTwo.setName("IV Wydział Karny"); SimpleEntity simpleCcDivisionThree = new SimpleEntity(); simpleCcDivisionThree.setName("IX Wydział Penitencjarny i Nadzoru nad Wykonywaniem Orzeczeń Karnych"); List<CommonCourtDivision> divisionsWrongOrder = Arrays.asList(ccDivisionThree, ccDivisionOne, ccDivisionTwo); List<CommonCourtDivision> divisionsRightOrder = Arrays.asList(ccDivisionOne, ccDivisionTwo, ccDivisionThree); when(ccDivisionRepository.findAllByCourtId(1)).thenReturn(divisionsWrongOrder); when(simpleEntityConverter.convertCcDivisions(divisionsRightOrder)) .thenReturn(Arrays.asList(simpleCcDivisionOne, simpleCcDivisionTwo, simpleCcDivisionThree)); //when List<SimpleEntity> divisions = ccListService.findCcDivisions(1); //then assertEquals(3, divisions.size()); assertEquals(divisions.get(0).getName(), ccDivisionOne.getName()); assertEquals(divisions.get(1).getName(), ccDivisionTwo.getName()); assertEquals(divisions.get(2).getName(), ccDivisionThree.getName()); } @Test public void findCcDivisions_correct_order_names_without_roman_numbers() { //given CommonCourtDivision ccDivisionOne = new CommonCourtDivision(); ccDivisionOne.setName("Wydział Cywilny"); CommonCourtDivision ccDivisionTwo = new CommonCourtDivision(); ccDivisionTwo.setName("Wydział Karny"); CommonCourtDivision ccDivisionThree = new CommonCourtDivision(); ccDivisionThree.setName("IX Wydział Penitencjarny i Nadzoru nad Wykonywaniem Orzeczeń Karnych"); SimpleEntity simpleCcDivisionOne = new SimpleEntity(); simpleCcDivisionOne.setName("Wydział Cywilny"); SimpleEntity simpleCcDivisionTwo = new SimpleEntity(); simpleCcDivisionTwo.setName("Wydział Karny"); SimpleEntity simpleCcDivisionThree = new SimpleEntity(); simpleCcDivisionThree.setName("IX Wydział Penitencjarny i Nadzoru nad Wykonywaniem Orzeczeń Karnych"); List<CommonCourtDivision> divisionsWrongOrder = Arrays.asList(ccDivisionThree, ccDivisionTwo, ccDivisionOne); List<CommonCourtDivision> divisionsRightOrder = Arrays.asList(ccDivisionOne, ccDivisionTwo, ccDivisionThree); when(ccDivisionRepository.findAllByCourtId(1)).thenReturn(divisionsWrongOrder); when(simpleEntityConverter.convertCcDivisions(divisionsRightOrder)) .thenReturn(Arrays.asList(simpleCcDivisionOne, simpleCcDivisionTwo, simpleCcDivisionThree)); //when List<SimpleEntity> divisions = ccListService.findCcDivisions(1); //then assertEquals(3, divisions.size()); assertEquals(divisions.get(0).getName(), ccDivisionOne.getName()); assertEquals(divisions.get(1).getName(), ccDivisionTwo.getName()); assertEquals(divisions.get(2).getName(), ccDivisionThree.getName()); } }