Skip to content
Snippets Groups Projects
Commit a3f8152e authored by vkovtun's avatar vkovtun
Browse files

SSDM-9845 Added test SearchSampleTest.testSearchWithContainer() and renamed...

SSDM-9845 Added test SearchSampleTest.testSearchWithContainer() and renamed the old one with the same name.
parent 8af11edb
No related branches found
No related tags found
No related merge requests found
......@@ -73,9 +73,8 @@ public class PostgresSearchDAO implements ISQLSearchDAO
final SelectQuery selectQuery = SearchCriteriaTranslator.translate(translationVo);
final List<Map<String, Object>> result = sqlExecutor.execute(selectQuery.getQuery(), selectQuery.getArgs());
return result.stream().map(
stringLongMap -> (Long) stringLongMap.get(finalIdColumnName)
).collect(Collectors.toSet());
return result.stream().map(stringLongMap -> (Long) stringLongMap.get(finalIdColumnName))
.collect(Collectors.toSet());
}
@Override
......
......@@ -224,7 +224,7 @@ public abstract class AbstractCompositeEntitySearchManager<CRITERIA extends Abst
* @param idsColumnName the name of the column, whose values to be returned.
* @param tableMapper the table mapper to be used during translation.
*/
private Set<Long> getAllIds(final Long userId, final AuthorisationInformation authorisationInformation, final String idsColumnName,
protected Set<Long> getAllIds(final Long userId, final AuthorisationInformation authorisationInformation, final String idsColumnName,
final TableMapper tableMapper)
{
final CRITERIA criteria = createEmptyCriteria();
......
......@@ -73,7 +73,7 @@ public class SampleContainerSearchManager extends AbstractCompositeEntitySearchM
@Override
protected SampleContainerSearchCriteria createEmptyCriteria()
{
return new SampleContainerSearchCriteria();
throw new UnsupportedOperationException("This method is not supposed to be called.");
}
@Override
......@@ -82,4 +82,12 @@ public class SampleContainerSearchManager extends AbstractCompositeEntitySearchM
return getAuthProvider().getAuthorisedSamples(ids, authorisationInformation);
}
@Override
protected Set<Long> getAllIds(final Long userId, final AuthorisationInformation authorisationInformation, final String idsColumnName,
final TableMapper tableMapper)
{
return getSearchDAO().queryDBWithNonRecursiveCriteria(userId, new DummyCompositeSearchCriterion(), tableMapper,
idsColumnName, authorisationInformation);
}
}
......@@ -27,6 +27,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.id.EntityTypePermId;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.search.EntityTypeSearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.search.ExperimentTypeSearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.material.search.MaterialTypeSearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.search.SampleContainerSearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.search.SampleTypeSearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.tag.search.TagSearchCriteria;
import ch.ethz.sis.openbis.generic.server.asapi.v3.search.auth.AuthorisationInformation;
......@@ -156,7 +157,7 @@ public class SearchCriteriaTranslator
/**
* Appends condition translated from a criterion.
* @param vo value object with miscellaneous information.
* @param authorisationInformation
* @param authorisationInformation authorisation information to be used to filter final results.
* @param sqlBuilder string builder to append the condition to.
* @param criterion criterion to be translated.
*/
......@@ -196,7 +197,6 @@ public class SearchCriteriaTranslator
throw new IllegalArgumentException("Only local search subqueries are supported.");
}
appendInStatement(sqlBuilder, criterion, column, tableMapper);
vo.getArgs().add(ids.toArray(new Long[0]));
} else
......@@ -391,7 +391,8 @@ public class SearchCriteriaTranslator
{
final ISearchCriteria criterion = criteria.iterator().next();
return criterion instanceof AbstractEntitySearchCriteria<?> &&
((AbstractEntitySearchCriteria<?>) criterion).getCriteria().isEmpty();
((AbstractEntitySearchCriteria<?>) criterion).getCriteria().isEmpty() &&
!(criterion instanceof SampleContainerSearchCriteria);
}
default:
......
......@@ -51,6 +51,131 @@ import static org.testng.Assert.*;
public class SearchSampleTest extends AbstractSampleTest
{
private static final String[] ALL_SAMPLE_IDS_WITH_CONTAINER = new String[]
{
"/CISD/CL1:A01", "/CISD/CL1:A03", "/CISD/MP002-1:A03", "/CISD/MP002-1:A04", "/CISD/MP002-1:A05",
"/CISD/MP002-1:A06", "/CISD/MP002-1:A07", "/CISD/MP002-1:A08", "/CISD/MP002-1:A09",
"/CISD/MP002-1:A10", "/CISD/MP002-1:A11", "/CISD/MP002-1:A12", "/CISD/MP002-1:A13",
"/CISD/MP002-1:A14", "/CISD/MP002-1:A15", "/CISD/MP002-1:A16", "/CISD/MP002-1:A17",
"/CISD/MP002-1:A18", "/CISD/MP002-1:A19", "/CISD/MP002-1:A20", "/CISD/MP002-1:A21",
"/CISD/MP002-1:A22", "/CISD/MP002-1:B03", "/CISD/MP002-1:B04", "/CISD/MP002-1:B05",
"/CISD/MP002-1:B06", "/CISD/MP002-1:B07", "/CISD/MP002-1:B08", "/CISD/MP002-1:B09",
"/CISD/MP002-1:B10", "/CISD/MP002-1:B11", "/CISD/MP002-1:B12", "/CISD/MP002-1:B13",
"/CISD/MP002-1:B14", "/CISD/MP002-1:B15", "/CISD/MP002-1:B16", "/CISD/MP002-1:B17",
"/CISD/MP002-1:B18", "/CISD/MP002-1:B19", "/CISD/MP002-1:B20", "/CISD/MP002-1:B21",
"/CISD/MP002-1:B22", "/CISD/MP002-1:C03", "/CISD/MP002-1:C04", "/CISD/MP002-1:C05",
"/CISD/MP002-1:C06", "/CISD/MP002-1:C07", "/CISD/MP002-1:C08", "/CISD/MP002-1:C09",
"/CISD/MP002-1:C10", "/CISD/MP002-1:C11", "/CISD/MP002-1:C12", "/CISD/MP002-1:C13",
"/CISD/MP002-1:C14", "/CISD/MP002-1:C15", "/CISD/MP002-1:C16", "/CISD/MP002-1:C17",
"/CISD/MP002-1:C18", "/CISD/MP002-1:C19", "/CISD/MP002-1:C20", "/CISD/MP002-1:C21",
"/CISD/MP002-1:C22", "/CISD/MP002-1:D03", "/CISD/MP002-1:D04", "/CISD/MP002-1:D05",
"/CISD/MP002-1:D06", "/CISD/MP002-1:D07", "/CISD/MP002-1:D08", "/CISD/MP002-1:D09",
"/CISD/MP002-1:D10", "/CISD/MP002-1:D11", "/CISD/MP002-1:D12", "/CISD/MP002-1:D13",
"/CISD/MP002-1:D14", "/CISD/MP002-1:D15", "/CISD/MP002-1:D16", "/CISD/MP002-1:D17",
"/CISD/MP002-1:D18", "/CISD/MP002-1:D19", "/CISD/MP002-1:D20", "/CISD/MP002-1:D21",
"/CISD/MP002-1:D22", "/CISD/MP002-1:E03", "/CISD/MP002-1:E04", "/CISD/MP002-1:E05",
"/CISD/MP002-1:E06", "/CISD/MP002-1:E07", "/CISD/MP002-1:E08", "/CISD/MP002-1:E09",
"/CISD/MP002-1:E10", "/CISD/MP002-1:E11", "/CISD/MP002-1:E12", "/CISD/MP002-1:E13",
"/CISD/MP002-1:E14", "/CISD/MP002-1:E15", "/CISD/MP002-1:E16", "/CISD/MP002-1:E17",
"/CISD/MP002-1:E18", "/CISD/MP002-1:E19", "/CISD/MP002-1:E20", "/CISD/MP002-1:E21",
"/CISD/MP002-1:E22", "/CISD/MP002-1:F03", "/CISD/MP002-1:F04", "/CISD/MP002-1:F05",
"/CISD/MP002-1:F06", "/CISD/MP002-1:F07", "/CISD/MP002-1:F08", "/CISD/MP002-1:F09",
"/CISD/MP002-1:F10", "/CISD/MP002-1:F11", "/CISD/MP002-1:F12", "/CISD/MP002-1:F13",
"/CISD/MP002-1:F14", "/CISD/MP002-1:F15", "/CISD/MP002-1:F16", "/CISD/MP002-1:F17",
"/CISD/MP002-1:F18", "/CISD/MP002-1:F19", "/CISD/MP002-1:F20", "/CISD/MP002-1:F21",
"/CISD/MP002-1:F22", "/CISD/MP002-1:G03", "/CISD/MP002-1:G04", "/CISD/MP002-1:G05",
"/CISD/MP002-1:G06", "/CISD/MP002-1:G07", "/CISD/MP002-1:G08", "/CISD/MP002-1:G09",
"/CISD/MP002-1:G10", "/CISD/MP002-1:G11", "/CISD/MP002-1:G12", "/CISD/MP002-1:G13",
"/CISD/MP002-1:G14", "/CISD/MP002-1:G15", "/CISD/MP002-1:G16", "/CISD/MP002-1:G17",
"/CISD/MP002-1:G18", "/CISD/MP002-1:G19", "/CISD/MP002-1:G20", "/CISD/MP002-1:G21",
"/CISD/MP002-1:G22", "/CISD/MP002-1:H03", "/CISD/MP002-1:H04", "/CISD/MP002-1:H05",
"/CISD/MP002-1:H06", "/CISD/MP002-1:H07", "/CISD/MP002-1:H08", "/CISD/MP002-1:H09",
"/CISD/MP002-1:H10", "/CISD/MP002-1:H11", "/CISD/MP002-1:H12", "/CISD/MP002-1:H13",
"/CISD/MP002-1:H14", "/CISD/MP002-1:H15", "/CISD/MP002-1:H16", "/CISD/MP002-1:H17",
"/CISD/MP002-1:H18", "/CISD/MP002-1:H19", "/CISD/MP002-1:H20", "/CISD/MP002-1:H21",
"/CISD/MP002-1:H22", "/CISD/MP002-1:I03", "/CISD/MP002-1:I04", "/CISD/MP002-1:I05",
"/CISD/MP002-1:I06", "/CISD/MP002-1:I07", "/CISD/MP002-1:I08", "/CISD/MP002-1:I09",
"/CISD/MP002-1:I10", "/CISD/MP002-1:I11", "/CISD/MP002-1:I12", "/CISD/MP002-1:I13",
"/CISD/MP002-1:I14", "/CISD/MP002-1:I15", "/CISD/MP002-1:I16", "/CISD/MP002-1:I17",
"/CISD/MP002-1:I18", "/CISD/MP002-1:I19", "/CISD/MP002-1:I20", "/CISD/MP002-1:I21",
"/CISD/MP002-1:I22", "/CISD/MP002-1:J03", "/CISD/MP002-1:J04", "/CISD/MP002-1:J05",
"/CISD/MP002-1:J06", "/CISD/MP002-1:J07", "/CISD/MP002-1:J08", "/CISD/MP002-1:J09",
"/CISD/MP002-1:J10", "/CISD/MP002-1:J11", "/CISD/MP002-1:J12", "/CISD/MP002-1:J13",
"/CISD/MP002-1:J14", "/CISD/MP002-1:J15", "/CISD/MP002-1:J16", "/CISD/MP002-1:J17",
"/CISD/MP002-1:J18", "/CISD/MP002-1:J19", "/CISD/MP002-1:J20", "/CISD/MP002-1:J21",
"/CISD/MP002-1:J22", "/CISD/MP002-1:K03", "/CISD/MP002-1:K04", "/CISD/MP002-1:K05",
"/CISD/MP002-1:K06", "/CISD/MP002-1:K07", "/CISD/MP002-1:K08", "/CISD/MP002-1:K09",
"/CISD/MP002-1:K10", "/CISD/MP002-1:K11", "/CISD/MP002-1:K12", "/CISD/MP002-1:K13",
"/CISD/MP002-1:K14", "/CISD/MP002-1:K15", "/CISD/MP002-1:K16", "/CISD/MP002-1:K17",
"/CISD/MP002-1:K18", "/CISD/MP002-1:K19", "/CISD/MP002-1:K20", "/CISD/MP002-1:K21",
"/CISD/MP002-1:K22", "/CISD/MP002-1:L03", "/CISD/MP002-1:L04", "/CISD/MP002-1:L05",
"/CISD/MP002-1:L06", "/CISD/MP002-1:L07", "/CISD/MP002-1:L08", "/CISD/MP002-1:L09",
"/CISD/MP002-1:L10", "/CISD/MP002-1:L11", "/CISD/MP002-1:L12", "/CISD/MP002-1:L13",
"/CISD/MP002-1:L14", "/CISD/MP002-1:L15", "/CISD/MP002-1:L16", "/CISD/MP002-1:L17",
"/CISD/MP002-1:L18", "/CISD/MP002-1:L19", "/CISD/MP002-1:L20", "/CISD/MP002-1:L21",
"/CISD/MP002-1:L22", "/CISD/MP002-1:M03", "/CISD/MP002-1:M04", "/CISD/MP002-1:M05",
"/CISD/MP002-1:M06", "/CISD/MP002-1:M07", "/CISD/MP002-1:M08", "/CISD/MP002-1:M09",
"/CISD/MP002-1:M10", "/CISD/MP002-1:M11", "/CISD/MP002-1:M12", "/CISD/MP002-1:M13",
"/CISD/MP002-1:M14", "/CISD/MP002-1:M15", "/CISD/MP002-1:M16", "/CISD/MP002-1:M17",
"/CISD/MP002-1:M18", "/CISD/MP002-1:M19", "/CISD/MP002-1:M20", "/CISD/MP002-1:M21",
"/CISD/MP002-1:M22", "/CISD/MP002-1:N03", "/CISD/MP002-1:N04", "/CISD/MP002-1:N05",
"/CISD/MP002-1:N06", "/CISD/MP002-1:N07", "/CISD/MP002-1:N08", "/CISD/MP002-1:N09",
"/CISD/MP002-1:N10", "/CISD/MP002-1:N11", "/CISD/MP002-1:N12", "/CISD/MP002-1:N13",
"/CISD/MP002-1:N14", "/CISD/MP002-1:N15", "/CISD/MP002-1:N16", "/CISD/MP002-1:N17",
"/CISD/MP002-1:N18", "/CISD/MP002-1:N19", "/CISD/MP002-1:N20", "/CISD/MP002-1:N21",
"/CISD/MP002-1:N22", "/CISD/MP002-1:O03", "/CISD/MP002-1:O04", "/CISD/MP002-1:O05",
"/CISD/MP002-1:O06", "/CISD/MP002-1:O07", "/CISD/MP002-1:O08", "/CISD/MP002-1:O09",
"/CISD/MP002-1:O10", "/CISD/MP002-1:O11", "/CISD/MP002-1:O12", "/CISD/MP002-1:O13",
"/CISD/MP002-1:O14", "/CISD/MP002-1:O15", "/CISD/MP002-1:O16", "/CISD/MP002-1:O17",
"/CISD/MP002-1:O18", "/CISD/MP002-1:O19", "/CISD/MP002-1:O20", "/CISD/MP002-1:O21",
"/CISD/MP002-1:O22", "/CISD/MP002-1:P03", "/CISD/MP002-1:P04", "/CISD/MP002-1:P05",
"/CISD/MP002-1:P06", "/CISD/MP002-1:P07", "/CISD/MP002-1:P08", "/CISD/MP002-1:P09",
"/CISD/MP002-1:P10", "/CISD/MP002-1:P11", "/CISD/MP002-1:P12", "/CISD/MP002-1:P13",
"/CISD/MP002-1:P14", "/CISD/MP002-1:P15", "/CISD/MP002-1:P16", "/CISD/MP002-1:P17",
"/CISD/MP002-1:P18", "/CISD/MP002-1:P19", "/CISD/MP002-1:P20", "/CISD/MP002-1:P21",
"/CISD/MP002-1:P22", "/MP:A03", "/MP:A04", "/MP:A05", "/MP:A06", "/MP:A07", "/MP:A08", "/MP:A09",
"/MP:A10", "/MP:A11", "/MP:A12", "/MP:A13", "/MP:A14", "/MP:A15", "/MP:A16", "/MP:A17", "/MP:A18",
"/MP:A19", "/MP:A20", "/MP:A21", "/MP:A22", "/MP:B03", "/MP:B04", "/MP:B05", "/MP:B06", "/MP:B07",
"/MP:B08", "/MP:B09", "/MP:B10", "/MP:B11", "/MP:B12", "/MP:B13", "/MP:B14", "/MP:B15", "/MP:B16",
"/MP:B17", "/MP:B18", "/MP:B19", "/MP:B20", "/MP:B21", "/MP:B22", "/MP:C03", "/MP:C04", "/MP:C05",
"/MP:C06", "/MP:C07", "/MP:C08", "/MP:C09", "/MP:C10", "/MP:C11", "/MP:C12", "/MP:C13", "/MP:C14",
"/MP:C15", "/MP:C16", "/MP:C17", "/MP:C18", "/MP:C19", "/MP:C20", "/MP:C21", "/MP:C22", "/MP:D03",
"/MP:D04", "/MP:D05", "/MP:D06", "/MP:D07", "/MP:D08", "/MP:D09", "/MP:D10", "/MP:D11", "/MP:D12",
"/MP:D13", "/MP:D14", "/MP:D15", "/MP:D16", "/MP:D17", "/MP:D18", "/MP:D19", "/MP:D20", "/MP:D21",
"/MP:D22", "/MP:E03", "/MP:E04", "/MP:E05", "/MP:E06", "/MP:E07", "/MP:E08", "/MP:E09", "/MP:E10",
"/MP:E11", "/MP:E12", "/MP:E13", "/MP:E14", "/MP:E15", "/MP:E16", "/MP:E17", "/MP:E18", "/MP:E19",
"/MP:E20", "/MP:E21", "/MP:E22", "/MP:F03", "/MP:F04", "/MP:F05", "/MP:F06", "/MP:F07", "/MP:F08",
"/MP:F09", "/MP:F10", "/MP:F11", "/MP:F12", "/MP:F13", "/MP:F14", "/MP:F15", "/MP:F16", "/MP:F17",
"/MP:F18", "/MP:F19", "/MP:F20", "/MP:F21", "/MP:F22", "/MP:G03", "/MP:G04", "/MP:G05", "/MP:G06",
"/MP:G07", "/MP:G08", "/MP:G09", "/MP:G10", "/MP:G11", "/MP:G12", "/MP:G13", "/MP:G14", "/MP:G15",
"/MP:G16", "/MP:G17", "/MP:G18", "/MP:G19", "/MP:G20", "/MP:G21", "/MP:G22", "/MP:H03", "/MP:H04",
"/MP:H05", "/MP:H06", "/MP:H07", "/MP:H08", "/MP:H09", "/MP:H10", "/MP:H11", "/MP:H12", "/MP:H13",
"/MP:H14", "/MP:H15", "/MP:H16", "/MP:H17", "/MP:H18", "/MP:H19", "/MP:H20", "/MP:H21", "/MP:H22",
"/MP:I03", "/MP:I04", "/MP:I05", "/MP:I06", "/MP:I07", "/MP:I08", "/MP:I09", "/MP:I10", "/MP:I11",
"/MP:I12", "/MP:I13", "/MP:I14", "/MP:I15", "/MP:I16", "/MP:I17", "/MP:I18", "/MP:I19", "/MP:I20",
"/MP:I21", "/MP:I22", "/MP:J03", "/MP:J04", "/MP:J05", "/MP:J06", "/MP:J07", "/MP:J08", "/MP:J09",
"/MP:J10", "/MP:J11", "/MP:J12", "/MP:J13", "/MP:J14", "/MP:J15", "/MP:J16", "/MP:J17", "/MP:J18",
"/MP:J19", "/MP:J20", "/MP:J21", "/MP:J22", "/MP:K03", "/MP:K04", "/MP:K05", "/MP:K06", "/MP:K07",
"/MP:K08", "/MP:K09", "/MP:K10", "/MP:K11", "/MP:K12", "/MP:K13", "/MP:K14", "/MP:K15", "/MP:K16",
"/MP:K17", "/MP:K18", "/MP:K19", "/MP:K20", "/MP:K21", "/MP:K22", "/MP:L03", "/MP:L04", "/MP:L05",
"/MP:L06", "/MP:L07", "/MP:L08", "/MP:L09", "/MP:L10", "/MP:L11", "/MP:L12", "/MP:L13", "/MP:L14",
"/MP:L15", "/MP:L16", "/MP:L17", "/MP:L18", "/MP:L19", "/MP:L20", "/MP:L21", "/MP:L22", "/MP:M03",
"/MP:M04", "/MP:M05", "/MP:M06", "/MP:M07", "/MP:M08", "/MP:M09", "/MP:M10", "/MP:M11", "/MP:M12",
"/MP:M13", "/MP:M14", "/MP:M15", "/MP:M16", "/MP:M17", "/MP:M18", "/MP:M19", "/MP:M20", "/MP:M21",
"/MP:M22", "/MP:N03", "/MP:N04", "/MP:N05", "/MP:N06", "/MP:N07", "/MP:N08", "/MP:N09", "/MP:N10",
"/MP:N11", "/MP:N12", "/MP:N13", "/MP:N14", "/MP:N15", "/MP:N16", "/MP:N17", "/MP:N18", "/MP:N19",
"/MP:N20", "/MP:N21", "/MP:N22", "/MP:O03", "/MP:O04", "/MP:O05", "/MP:O06", "/MP:O07", "/MP:O08",
"/MP:O09", "/MP:O10", "/MP:O11", "/MP:O12", "/MP:O13", "/MP:O14", "/MP:O15", "/MP:O16", "/MP:O17",
"/MP:O18", "/MP:O19", "/MP:O20", "/MP:O21", "/MP:O22", "/MP:P03", "/MP:P04", "/MP:P05", "/MP:P06",
"/MP:P07", "/MP:P08", "/MP:P09", "/MP:P10", "/MP:P11", "/MP:P12", "/MP:P13", "/MP:P14", "/MP:P15",
"/MP:P16", "/MP:P17", "/MP:P18", "/MP:P19", "/MP:P20", "/MP:P21", "/MP:P22", "/CISD/CL-3V:A01",
"/CISD/CL-3V:A02", "/CISD/B1B3:B01", "/CISD/B1B3:B03", "/CISD/C1:C01", "/CISD/C2:C02",
"/CISD/C3:C03", "/CISD/MP1-MIXED:A01", "/CISD/MP1-MIXED:A02", "/CISD/MP1-MIXED:A03",
"/CISD/MP1-MIXED:B02", "/CISD/MP2-NO-CL:A01", "/CISD/MP2-NO-CL:A02", "/CISD/MP2-NO-CL:A03",
"/CISD/MP2-NO-CL:B02", "/CISD/MP2-NO-CL:C03", "/CISD/PLATE_WELLSEARCH:WELL-A01",
"/CISD/PLATE_WELLSEARCH:WELL-A02"
};
@Autowired
protected ISQLExecutor sqlExecutor;
......@@ -690,7 +815,7 @@ public class SearchSampleTest extends AbstractSampleTest
}
@Test
public void testSearchWithContainer()
public void testSearchWithCodeAndWithContainer()
{
SampleSearchCriteria criteria = new SampleSearchCriteria();
criteria.withCode().thatContains("WELL");
......@@ -698,6 +823,14 @@ public class SearchSampleTest extends AbstractSampleTest
testSearch(TEST_USER, criteria, "/CISD/PLATE_WELLSEARCH:WELL-A01", "/CISD/PLATE_WELLSEARCH:WELL-A02");
}
@Test
public void testSearchWithContainer()
{
final SampleSearchCriteria criteria = new SampleSearchCriteria();
criteria.withContainer();
testSearch(TEST_USER, criteria, ALL_SAMPLE_IDS_WITH_CONTAINER);
}
@Test
public void testSearchWithoutContainer()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment