package pl.edu.icm.saos.persistence.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
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.CommonCourt;
import pl.edu.icm.saos.persistence.model.CommonCourt.CommonCourtType;
import pl.edu.icm.saos.persistence.repository.CommonCourtRepository;
/**
* @author Łukasz Dumiszewski
*/
@Category(SlowTest.class)
public class CommonCourtHierarchyUpdaterTest extends PersistenceTestSupport {
@Autowired
private CommonCourtHierarchyUpdater commonCourtHierarchyUpdater;
@Autowired
private CommonCourtRepository commonCourtRepository;
@Test
public void updateHierarchy() {
createCourt("15050000", CommonCourtType.APPEAL, "Sąd Apelacyjny 1");
createCourt("15050500", CommonCourtType.REGIONAL, "Sąd Okręgowy 1_1");
createCourt("15050505", CommonCourtType.DISTRICT, "Sąd Rejonowy 1_1_1");
createCourt("15050510", CommonCourtType.DISTRICT, "Sąd Rejonowy 1_1_2");
createCourt("15051000", CommonCourtType.REGIONAL, "Sąd Okręgowy 1_2");
createCourt("15051010", CommonCourtType.DISTRICT, "Sąd Rejonowy 1_2_1");
createCourt("15100000", CommonCourtType.APPEAL, "Sąd Apelacyjny 2");
createCourt("15100500", CommonCourtType.REGIONAL, "Sąd Okręgowy 2_1");
createCourt("15100505", CommonCourtType.DISTRICT, "Sąd Rejonowy 2_1_1");
createCourt("15100510", CommonCourtType.DISTRICT, "Sąd Rejonowy 2_1_2");
createCourt("15101000", CommonCourtType.REGIONAL, "Sąd Okręgowy 2_2");
createCourt("15101010", CommonCourtType.DISTRICT, "Sąd Rejonowy 2_2_1");
CommonCourt court = commonCourtRepository.findOneByCode("15050500");
assertNotNull(court);
assertNull(court.getParentCourt());
commonCourtHierarchyUpdater.updateCommonCourtHierarchy();
court = commonCourtRepository.findOneByCode("15050500");
assertNotNull(court);
assertNotNull(court.getParentCourt());
CommonCourt parent = commonCourtRepository.findOneByCode("15050000");
assertEquals(parent.getId(), court.getParentCourt().getId());
}
private void createCourt(String code, CommonCourtType type, String name) {
CommonCourt court = new CommonCourt();
court.setCode(code);
court.setType(type);
court.setName(name);
commonCourtRepository.save(court);
}
}