package pl.edu.icm.saos.persistence.repository;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.List;
import java.util.List;
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.springframework.beans.factory.annotation.Autowired;
import pl.edu.icm.saos.common.testcommon.category.SlowTest;
import pl.edu.icm.saos.persistence.PersistenceTestSupport;
import pl.edu.icm.saos.persistence.model.SupremeCourtChamber;
import pl.edu.icm.saos.persistence.model.SupremeCourtChamberDivision;
/**
* @author Łukasz Dumiszewski
*/
@Category(SlowTest.class)
public class ScChamberDivisionRepositoryTest extends PersistenceTestSupport {
@Autowired
private ScChamberDivisionRepository scChamberDivisionRepository;
@Autowired
private ScChamberRepository scChamberRepository;
private SupremeCourtChamberDivision division1;
private SupremeCourtChamber chamberOne;
private SupremeCourtChamberDivision chamberDivisionOne;
@Before
public void before() {
division1 = createScChamberDivision("division 1 xxmmxxm");
createScChamberDivision("division 2 xxmccmxxm");
createScChamberDivision("division 3 xxmmxxm");
initScChamberForTests(); //adds one chamber division
}
@Test
public void deleteAll() {
assertEquals(4, scChamberDivisionRepository.count());
scChamberDivisionRepository.deleteAll();
assertEquals(0, scChamberDivisionRepository.count());
}
@Test
public void findOneByFullName_FOUND() {
SupremeCourtChamberDivision dbScDivision = scChamberDivisionRepository.findOneByFullName(division1.getFullName());
assertEquals(division1.getId(), dbScDivision.getId());
}
@Test
public void findOneByFullName_NOT_FOUND() {
SupremeCourtChamberDivision dbScDivision = scChamberDivisionRepository.findOneByFullName(division1.getFullName()+"xxx");
assertNull(dbScDivision);
}
@Test
public void findAllByScChamberId_FOUND() {
List<SupremeCourtChamberDivision> scChamberDivisions = scChamberDivisionRepository.findAllByScChamberId(chamberOne.getId());
assertEquals(1, scChamberDivisions.size());
assertEquals(chamberDivisionOne.getId(), scChamberDivisions.get(0).getId());
}
@Test
public void findAllByScChamberId_NOT_FOUND() {
List<SupremeCourtChamberDivision> emptyChamberDivisions = scChamberDivisionRepository.findAllByScChamberId(77);
assertNotNull(emptyChamberDivisions);
assertTrue(emptyChamberDivisions.isEmpty());
}
//------------------------ PRIVATE --------------------------
private SupremeCourtChamberDivision createScChamberDivision(String divisionFullName) {
SupremeCourtChamber scChamber = new SupremeCourtChamber();
scChamber.setName(divisionFullName);
scChamberRepository.save(scChamber);
SupremeCourtChamberDivision division = new SupremeCourtChamberDivision();
division.setFullName(divisionFullName);
division.setName(divisionFullName);
division.setScChamber(scChamber);
scChamberDivisionRepository.save(division);
return division;
}
private void initScChamberForTests() {
chamberOne = new SupremeCourtChamber();
chamberOne.setName("zxc");
scChamberRepository.save(chamberOne);
chamberDivisionOne = new SupremeCourtChamberDivision();
chamberDivisionOne.setFullName("Wydział karny I");
chamberDivisionOne.setName("Wydział karny I");
chamberDivisionOne.setScChamber(chamberOne);
scChamberDivisionRepository.save(chamberDivisionOne);
}
}