package pl.edu.icm.saos.search.search.service; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.common.SolrInputDocument; import org.joda.time.LocalDate; import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.io.ClassPathResource; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestContextManager; import pl.edu.icm.saos.common.testcommon.category.SlowTest; import pl.edu.icm.saos.persistence.model.CommonCourt.CommonCourtType; import pl.edu.icm.saos.persistence.model.CourtType; import pl.edu.icm.saos.persistence.model.Judge.JudgeRole; import pl.edu.icm.saos.persistence.model.Judgment.JudgmentType; import pl.edu.icm.saos.persistence.model.SupremeCourtJudgment.PersonnelType; import pl.edu.icm.saos.search.SearchTestConfiguration; import pl.edu.icm.saos.search.search.model.JudgeResult; import pl.edu.icm.saos.search.search.model.JudgmentCriteria; import pl.edu.icm.saos.search.search.model.JudgmentSearchResult; import pl.edu.icm.saos.search.search.model.SearchResults; import pl.edu.icm.saos.search.search.model.SupremeCourtChamberResult; import com.google.common.collect.Lists; import com.tngtech.java.junit.dataprovider.DataProvider; import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; /** * @author madryk */ @RunWith(DataProviderRunner.class) @ContextConfiguration(classes={ SearchTestConfiguration.class }) @Category(SlowTest.class) public class JudgmentSearchServiceTest { private final static String CONTENT_FIELD_FILE_1961 = "contentField1961.txt"; private final static String CONTENT_FIELD_FILE_41808 = "contentField41808.txt"; private TestContextManager testContextManager; @Autowired private JudgmentSearchService judgmentSearchService; @Autowired @Qualifier("solrJudgmentsServer") private SolrServer judgmentsServer; @DataProvider public static Object[][] searchResultsListData() { return new Object[][] { { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withAll("następuje").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("izba").build() }, { Lists.newArrayList(22l), JudgmentCriteriaBuilder.create().withAll("constitutionalTribunalCaseNumber").build() }, { Lists.newArrayList(23l), JudgmentCriteriaBuilder.create().withAll("meansOfAppeal").build() }, { Lists.newArrayList(23l), JudgmentCriteriaBuilder.create().withAll("judgmentresult").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withAll("other").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnienie").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnienia").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnieniu").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnieniem").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnień").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnieniom").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnieniami").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("przedawnieniach").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechać").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechałem").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechałeś").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechał").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechała").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechało").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechaliśmy").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechaliście").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechali").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withAll("zaniechały").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withAll("AND").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withAll("OR").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withAll("NOT").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withDateRange(new LocalDate(2012, 5, 15), new LocalDate(2012, 5, 15)).build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withDateFrom(new LocalDate(2014, 9, 3)).build() }, { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withDateTo(new LocalDate(2014, 9, 3)).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withKeyword("przestępstwo").build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withKeyword("przestępstwo przeciwko wolności").build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withKeyword("Przestępstwo Przeciwko Wolności").build() }, { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withKeyword("słowo kluczowe").build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create() .withKeyword("Przestępstwo Przeciwko Wolności").withKeyword("słowo kluczowe").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withJudgeName("Jacek Witkowski").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withJudgeName("Witkowski").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withJudgeName("Witkowski Kunecka").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withJudgeName("Elżbieta Kunecka").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withJudgeName("\"Irena Kunecka\"").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withJudgeName("Ewelina Kunecka").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withJudgeName("Adam Nowak").build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withLegalBase("art. 227 kk").build() }, { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withReferencedRegulation("kodeks").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withReferencedRegulation("1964").build() }, { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withReferencedRegulation("ustawa").build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withLawJournalEntryId(502).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withLawJournalEntryId(510).build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withLawJournalEntryCode("2000/1037").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withLawJournalEntryCode("2001/324").build() }, { Lists.newArrayList(22l, 23l), JudgmentCriteriaBuilder.create().withReferencedCourtCaseId(58).build() }, { Lists.newArrayList(23l), JudgmentCriteriaBuilder.create().withReferencedCourtCaseId(59).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withReferencedCourtCaseId(60).build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withCaseNumber("XV K 792/13").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCaseNumber("XV").build() }, { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withJudgmentType(JudgmentType.SENTENCE).build() }, { Lists.newArrayList(21l, 1961l, 41808l), JudgmentCriteriaBuilder.create() .withJudgmentType(JudgmentType.SENTENCE).withJudgmentType(JudgmentType.RESOLUTION).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withJudgmentType(JudgmentType.DECISION).build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withCourtType(CourtType.SUPREME).build() }, { Lists.newArrayList(1961l, 41808l), JudgmentCriteriaBuilder.create().withCourtType(CourtType.COMMON).build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withCcCourtType(CommonCourtType.DISTRICT).build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withCcCourtType(CommonCourtType.APPEAL).build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withCcCourtId(36).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCcCourtId(37).build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withCcCourtCode("15500000").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCcCourtCode("15505000").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withCcCourtName("Sąd Apelacyjny we Wrocławiu").build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withCcDirectOrSuperiorCourtId(36).build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withCcDirectOrSuperiorCourtId(37).build() }, { Lists.newArrayList(41808l), JudgmentCriteriaBuilder.create().withCcDirectOrSuperiorCourtId(38).build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withCcDivisionId(3).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCcDivisionId(4).build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withCcDivisionCode("0001521").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCcDivisionCode("0001522").build() }, { Lists.newArrayList(1961l), JudgmentCriteriaBuilder.create().withCcDivisionName("III Wydział Pracy i Ubezpieczeń Społecznych").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScJudgmentFormId(12l).build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScJudgmentFormName("Postanowienie SN").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withScPersonnelType(PersonnelType.ONE_PERSON).build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScPersonnelType(PersonnelType.JOINED_CHAMBERS).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withScChamberId(13).build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScChamberId(12).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withScChamberName("chamber").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScChamberName("Izba Cywilna").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScChamberName("Izba Pracy").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withScChamberDivisionId(112).build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScChamberDivisionId(111).build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withScChamberDivisionName("division").build() }, { Lists.newArrayList(21l), JudgmentCriteriaBuilder.create().withScChamberDivisionName("Wydział III").build() }, { Lists.newArrayList(22l), JudgmentCriteriaBuilder.create().withCtDissentingOpinion("first").build() }, { Lists.newArrayList(22l, 23l), JudgmentCriteriaBuilder.create().withCtDissentingOpinion("text OR first").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCtDissentingOpinion("text first").build() }, { Lists.newArrayList(22l), JudgmentCriteriaBuilder.create().withCtDissentingOpinion("Kowalski").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCtDissentingOpinion("other").build() }, { Lists.newArrayList(22l), JudgmentCriteriaBuilder.create().withCtDissentingOpinionAuthor("Kowalski").build() }, { Lists.newArrayList(), JudgmentCriteriaBuilder.create().withCtDissentingOpinionAuthor("first").build() }, }; } @Before public void setUp() throws Exception { testContextManager = new TestContextManager(getClass()); testContextManager.prepareTestInstance(this); judgmentsServer.deleteByQuery("*:*"); judgmentsServer.commit(); indexJudgments(); } //------------------------ TESTS -------------------------- @Test @UseDataProvider("searchResultsListData") public void search_CHECK_RESULTS_LIST(List<Long> expectedResultsIds, JudgmentCriteria criteria) { // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert long expectedResultsCount = expectedResultsIds.size(); assertEquals(expectedResultsCount, results.getTotalResults()); expectedResultsIds.forEach(id -> assertContainsResultWithId(results, id)); } @Test public void search_CHECK_RESULT() { // given JudgmentCriteria criteria = JudgmentCriteriaBuilder.create().withCaseNumber("III AUa 271/12").build(); // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert JudgmentSearchResult result = fetchAndAssertSingleSearchResult(results); assertEquals(1961, result.getId()); assertEquals(1, result.getCaseNumbers().size()); assertEquals("III AUa 271/12", result.getCaseNumbers().get(0)); assertEquals(JudgmentType.SENTENCE, result.getJudgmentType()); assertEquals(new BigDecimal("12300.23"), result.getMaxMoneyAmount()); LocalDate expectedDate = new LocalDate(2012, 5, 15); assertEquals(expectedDate, result.getJudgmentDate()); assertThat(result.getJudges(), containsInAnyOrder( new JudgeResult("Jacek Witkowski", JudgeRole.PRESIDING_JUDGE), new JudgeResult("Elżbieta Kunecka"), new JudgeResult("Irena Różańska-Dorosz"))); assertThat(result.getKeywords(), containsInAnyOrder("zwrot nienależnie pobranych świadczeń z ubezpieczenia", "słowo kluczowe")); assertTrue(result.getContent().contains("W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ")); assertTrue(result.getContent().contains("SSA Irena Różańska-Dorosz (spr.)")); assertTrue(result.getContent().contains("o zwrot nienależnie pobranego świadczenia")); assertFalse(result.getContent().contains("<p>")); assertFalse(result.getContent().contains("</p>")); assertFalse(result.getContent().contains("anon-block")); assertTrue(result.getContent().length() <= 800); } @Test public void search_CHECK_COMMON_COURT_RESULT() { // given JudgmentCriteria criteria = JudgmentCriteriaBuilder.create().withCaseNumber("III AUa 271/12").build(); // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert JudgmentSearchResult result = fetchAndAssertSingleSearchResult(results); assertEquals(1961, result.getId()); assertEquals(1l, result.getCcCourtId().longValue()); assertEquals("15500000", result.getCcCourtCode()); assertEquals("Sąd Apelacyjny we Wrocławiu", result.getCcCourtName()); assertEquals(3l, result.getCcCourtDivisionId().longValue()); assertEquals("0001521", result.getCcCourtDivisionCode()); assertEquals("III Wydział Pracy i Ubezpieczeń Społecznych", result.getCcCourtDivisionName()); } @Test public void search_CHECK_SUPREME_COURT_RESULT() { // given JudgmentCriteria criteria = JudgmentCriteriaBuilder.create().withCaseNumber("supremeCaseNumber").build(); // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert JudgmentSearchResult result = fetchAndAssertSingleSearchResult(results); assertEquals(21, result.getId()); assertEquals(12l, result.getScJudgmentFormId().longValue()); assertEquals("Postanowienie SN", result.getScJudgmentFormName()); assertEquals(PersonnelType.JOINED_CHAMBERS,result.getScPersonnelType()); assertTrue(result.getScCourtChambers().contains(new SupremeCourtChamberResult(11, "Izba Cywilna"))); assertTrue(result.getScCourtChambers().contains(new SupremeCourtChamberResult(12, "Izba Pracy"))); assertEquals(111l, result.getScCourtDivisionId().longValue()); assertEquals("Wydział III", result.getScCourtDivisionName()); assertEquals(11l, result.getScCourtDivisionsChamberId().longValue()); assertEquals("Izba Cywilna", result.getScCourtDivisionsChamberName()); } @Test public void search_CHECK_HIGHLIGHTING() { // given JudgmentCriteria criteria = new JudgmentCriteria("świadków"); // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert JudgmentSearchResult result = fetchAndAssertSingleSearchResult(results); assertEquals(41808, result.getId()); Pattern highlightPattern = Pattern.compile("<em>\\S+</em>"); Matcher highlightMatcher = highlightPattern.matcher(result.getContent()); List<String> highlights = Lists.newArrayList(); while (highlightMatcher.find()) { highlights.add(highlightMatcher.group()); } assertThat(highlights, contains("<em>świadków</em>", "<em>Świadkowie</em>", "<em>świadkowie</em>", "<em>świadek</em>")); assertEquals(3, StringUtils.countMatches(result.getContent(), " ... ")); } @Test public void search_CHECK_HIGHLIGHTING_REQUIRED_FIELD_MATCH() { // given JudgmentCriteria criteria = new JudgmentCriteria("content"); criteria.setScCourtChamberId(11l); // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert JudgmentSearchResult result = fetchAndAssertSingleSearchResult(results); assertEquals(21, result.getId()); assertTrue(result.getContent().contains("11")); assertFalse(result.getContent().contains("<em>11</em>")); } @Test public void search_CHECK_HIGHLIGHTING_NO_LENGTH_LIMIT() { // given JudgmentCriteria criteria = new JudgmentCriteria("lastword"); // execute SearchResults<JudgmentSearchResult> results = judgmentSearchService.search(criteria, null); // assert JudgmentSearchResult result = fetchAndAssertSingleSearchResult(results); assertEquals(22, result.getId()); assertTrue(result.getContent().contains("<em>lastword</em>")); } //------------------------ PRIVATE -------------------------- private void assertContainsResultWithId(SearchResults<JudgmentSearchResult> results, long id) { for (JudgmentSearchResult result : results.getResults()) { if (result.getId() == id) { return; } } fail("results doesn't contain judgment with id " + id); } private JudgmentSearchResult fetchAndAssertSingleSearchResult(SearchResults<JudgmentSearchResult> results) { assertEquals(1, results.getTotalResults()); assertEquals(1, results.getResults().size()); return results.getResults().get(0); } private void indexJudgments() throws SolrServerException, IOException { judgmentsServer.add(fetchFirstCcJudgmentDoc()); judgmentsServer.add(fetchSecondCcJudgmentDoc()); judgmentsServer.add(fetchScJudgmentDoc()); judgmentsServer.add(fetchfirstCtJudgmentDoc()); judgmentsServer.add(fetchSecondCtJudgmentDoc()); judgmentsServer.commit(); } private SolrInputDocument fetchFirstCcJudgmentDoc() throws IOException { SolrInputDocument doc = new SolrInputDocument(); doc.addField("databaseId", "41808"); doc.addField("caseNumber", "XV K 792/13"); doc.addField("judgmentDate", "2014-09-03T00:00:00Z"); doc.addField("judgmentType", "SENTENCE"); doc.addField("legalBases", "art. 193 kk"); doc.addField("legalBases", "art. 227 kk"); String firstRR = "Ustawa z dnia 23 czerwca 1973 r. o opłatach w sprawach karnych (Dz. U. z 1973 r. Nr 27, poz. 152 - art. 3; art. 3 ust. 1)"; String secondRR = "Ustawa z dnia 6 czerwca 1997 r. - Kodeks karny (Dz. U. z 1997 r. Nr 88, poz. 553 - art. 11; art. 11 § 2; art. 11 § 3; art. 193; art. 227; art. 31; art. 31 § 1; art. 31 § 2; art. 44; art. 44 § 2; art. 53)"; String thirdRR = "Ustawa z dnia 6 czerwca 1997 r. - Kodeks postępowania karnego (Dz. U. z 1997 r. Nr 89, poz. 555 - art. 627)"; doc.addField("referencedRegulations", firstRR); doc.addField("referencedRegulations", secondRR); doc.addField("referencedRegulations", thirdRR); doc.addField("lawJournalEntryId", "501"); doc.addField("lawJournalEntryId", "502"); doc.addField("lawJournalEntryId", "503"); doc.addField("courtType", "COMMON"); doc.addField("ccCourtType", "DISTRICT"); doc.addField("ccCourtId", "36"); doc.addField("ccCourtCode", "15050505"); doc.addField("ccCourtName", "Sąd Rejonowy w Białymstoku"); doc.addField("ccCourtDivisionId", "213"); doc.addField("ccCourtDivisionCode", "0007506"); doc.addField("ccCourtDivisionName", "XV Wydział Karny"); doc.addField("ccAppealCourtId", "37"); doc.addField("ccAppealArea", "NA#1#Sąd Apelacyjny w Warszawie"); doc.addField("ccRegionalCourtId", "38"); doc.addField("ccRegionArea", "1#37#Sąd Okręgowy w Białymstoku"); doc.addField("ccDistrictCourtId", "36"); doc.addField("ccDistrictArea", "37#36#Sąd Rejonowy w Białymstoku"); doc.addField("judge", "Marcin Kęska|PRESIDING_JUDGE"); doc.addField("judgeName", "Marcin Kęska"); doc.addField("judgeWithRole_#_PRESIDING_JUDGE", "Marcin Kęska"); doc.addField("keyword", "przestępstwo przeciwko wolności"); doc.addField("keyword", "przestępstwo przeciwko porządkowi publicznemu"); doc.addField("keyword", "słowo kluczowe"); try (InputStream inputStream = new ClassPathResource(CONTENT_FIELD_FILE_41808).getInputStream()) { doc.addField("content", IOUtils.toString(inputStream, "UTF-8")); } return doc; } private SolrInputDocument fetchSecondCcJudgmentDoc() throws IOException { SolrInputDocument doc = new SolrInputDocument(); doc.addField("databaseId", "1961"); doc.addField("caseNumber", "III AUa 271/12"); doc.addField("judgmentDate", "2012-05-15T00:00:00Z"); doc.addField("judgmentType", "SENTENCE"); doc.addField("maximumMoneyAmount", new BigDecimal("12300.23")); doc.addField("judge", "Jacek Witkowski|PRESIDING_JUDGE"); doc.addField("judge", "Elżbieta Kunecka"); doc.addField("judge", "Irena Różańska-Dorosz"); doc.addField("judgeName", "Jacek Witkowski"); doc.addField("judgeName", "Elżbieta Kunecka"); doc.addField("judgeName", "Irena Różańska-Dorosz"); doc.addField("judgeWithRole_#_PRESIDING_JUDGE", "Jacek Witkowski"); doc.addField("judgeWithRole_#_NO_ROLE", "Elżbieta Kunecka"); doc.addField("judgeWithRole_#_NO_ROLE", "Irena Różańska-Dorosz"); String firstRR = "Ustawa z dnia 17 listopada 1964 r. - Kodeks postępowania cywilnego (Dz. U. z 1964 r. Nr 43, poz. 296 - art. 385)"; String secondRR = "Dekret z dnia 8 października 1946 r. - Prawo spadkowe (Dz. U. z 1946 r. Nr 60, poz. 328 - )"; String thirdRR = "Ustawa z dnia 29 sierpnia 1997 r. - Prawo bankowe (Dz. U. z 1997 r. Nr 140, poz. 939 - art. 55; art. 55 ust. 1; art. 55 ust. 1 pkt. 2; art. 55 ust. 3; art. 56)"; String fourthRR = "Ustawa z dnia 23 kwietnia 1964 r. - Kodeks cywilny (Dz. U. z 1964 r. Nr 16, poz. 93 - art. 101; art. 101 § 2)"; doc.addField("referencedRegulations", firstRR); doc.addField("referencedRegulations", secondRR); doc.addField("referencedRegulations", thirdRR); doc.addField("referencedRegulations", fourthRR); doc.addField("lawJournalEntryId", "505"); doc.addField("lawJournalEntryId", "506"); doc.addField("lawJournalEntryId", "507"); doc.addField("lawJournalEntryId", "508"); doc.addField("lawJournalEntryCode", "2000/1037"); doc.addField("lawJournalEntryCode", "2001/113"); doc.addField("courtType", "COMMON"); doc.addField("ccCourtType", "APPEAL"); doc.addField("ccCourtId", "1"); doc.addField("ccCourtCode", "15500000"); doc.addField("ccCourtName", "Sąd Apelacyjny we Wrocławiu"); doc.addField("ccCourtDivisionId", "3"); doc.addField("ccCourtDivisionCode", "0001521"); doc.addField("ccCourtDivisionName", "III Wydział Pracy i Ubezpieczeń Społecznych"); doc.addField("ccAppealCourtId", "1"); doc.addField("ccAppealArea", "NA#1#Sąd Apelacyjny we Wrocławiu"); doc.addField("keyword", "zwrot nienależnie pobranych świadczeń z ubezpieczenia"); doc.addField("keyword", "słowo kluczowe"); try (InputStream inputStream = new ClassPathResource(CONTENT_FIELD_FILE_1961).getInputStream()) { doc.addField("content", IOUtils.toString(inputStream, "UTF-8")); } return doc; } private SolrInputDocument fetchScJudgmentDoc() { SolrInputDocument doc = new SolrInputDocument(); doc.addField("databaseId", "21"); doc.addField("caseNumber", "supremeCaseNumber"); doc.addField("judgmentType", "RESOLUTION"); doc.addField("scJudgmentFormId", 12l); doc.addField("scJudgmentFormName", "Postanowienie SN"); doc.addField("scPersonnelType", "JOINED_CHAMBERS"); doc.addField("courtType", "SUPREME"); doc.addField("scCourtChamber", "11|Izba Cywilna"); doc.addField("scCourtChamber", "12|Izba Pracy"); doc.addField("scCourtChamberId", "11"); doc.addField("scCourtChamberName", "Izba Cywilna"); doc.addField("scCourtChamberId", "12"); doc.addField("scCourtChamberName", "Izba Pracy"); doc.addField("scCourtChamberDivisionId", "111"); doc.addField("scCourtChamberDivisionName", "Wydział III"); doc.addField("scCourtDivisionsChamberId", "11"); doc.addField("scCourtDivisionsChamberName", "Izba Cywilna"); doc.addField("content", "someContent 11 content 12 111 przedawnienia zaniechał"); return doc; } private SolrInputDocument fetchfirstCtJudgmentDoc() { SolrInputDocument doc = new SolrInputDocument(); doc.addField("databaseId", "22"); doc.addField("caseNumber", "constitutionalTribunalCaseNumber"); doc.addField("referencedCourtCasesIds", "57"); doc.addField("referencedCourtCasesIds", "58"); doc.addField("ctDissentingOpinion", "first dissenting opinion"); doc.addField("ctDissentingOpinion", "Aleksander Kowalski"); doc.addField("ctDissentingOpinion", "Jan Nowak"); doc.addField("ctDissentingOpinion", "second dissenting opinion"); doc.addField("ctDissentingOpinion", "Maciej Kamiński"); doc.addField("ctDissentingOpinionAuthor", "Aleksander Kowalski"); doc.addField("ctDissentingOpinionAuthor", "Jan Nowak"); doc.addField("ctDissentingOpinionAuthor", "Maciej Kamiński"); doc.addField("content", StringUtils.repeat('a', 100000) + " " + "lastword"); return doc; } private SolrInputDocument fetchSecondCtJudgmentDoc() { SolrInputDocument doc = new SolrInputDocument(); doc.addField("databaseId", "23"); doc.addField("all", "meansOfAppeal field"); doc.addField("all", "judgmentResult"); doc.addField("caseNumber", "secondConstitutionalTribunalCaseNumber"); doc.addField("referencedCourtCasesIds", "58"); doc.addField("referencedCourtCasesIds", "59"); doc.addField("ctDissentingOpinion", "text of dissenting opinion"); doc.addField("ctDissentingOpinion", "Kazimierz Kozłowski"); doc.addField("ctDissentingOpinionAuthor", "Kazimierz Kozłowski"); return doc; } }