From a6da419358aa078dba652f90ab44aad6027c96b1 Mon Sep 17 00:00:00 2001 From: Viktor Kovtun <viktor.kovtun@id.ethz.ch> Date: Mon, 31 Aug 2020 17:20:26 +0200 Subject: [PATCH] SSDM-10142 Added a new test that searches by date property represented by a string. Fixed an SQL error when making such an API call. --- .../harvester/HarvesterMaintenanceTask.java | 2 +- ...aSetAndPathInfoDBConsistencyCheckTask.java | 2 +- .../etlserver/plugins/GroupingPolicy.java | 2 +- .../etlserver/plugins/GroupingPolicyTest.java | 2 +- .../systemtests/CountStopCondition.java | 2 +- .../systemtests/ParsedLogEntry.java | 2 +- .../systemtests/SystemTestCase.java | 3 +-- .../translator/SearchCriteriaTranslator.java | 8 +++--- .../condition/utils/TranslatorUtils.java | 27 ++++++++++--------- .../ui/PropertyValueRenderers.java | 2 +- .../RevertDeletionConfirmationDialog.java | 2 +- .../application/ui/property/PropertyGrid.java | 2 +- .../application/ui/widget/HistoryWidget.java | 2 +- .../generic/shared/basic/BasicConstant.java | 6 ++--- .../asapi/v3/SearchExperimentTest.java | 22 +++++++++++---- .../utils/EntityTypeLabelUtils.java | 2 +- 16 files changed, 51 insertions(+), 37 deletions(-) diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/HarvesterMaintenanceTask.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/HarvesterMaintenanceTask.java index 8bd22ec4236..1ef9e485ae7 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/HarvesterMaintenanceTask.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/HarvesterMaintenanceTask.java @@ -417,7 +417,7 @@ public class HarvesterMaintenanceTask<T extends DataSetInformation> implements I private SimpleDateFormat createDateFormat() { - return new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN); + return new SimpleDateFormat(BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN); } } diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/DataSetAndPathInfoDBConsistencyCheckTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/DataSetAndPathInfoDBConsistencyCheckTask.java index 8c886e99f74..ec7a14049d9 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/DataSetAndPathInfoDBConsistencyCheckTask.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/DataSetAndPathInfoDBConsistencyCheckTask.java @@ -83,7 +83,7 @@ public class DataSetAndPathInfoDBConsistencyCheckTask extends AbstractMaintenanc static final String CONTINUING_TIME_POINT_KEY = "continuing-time-point"; private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat( - BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN); + BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN); private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, DataSetAndPathInfoDBConsistencyCheckTask.class); diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicy.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicy.java index 31bb8bf5e57..3b3ed491da6 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicy.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicy.java @@ -168,7 +168,7 @@ public class GroupingPolicy extends BaseGroupingPolicy return groups.get(0).getList(); } GroupWithAge oldestGroup = sortGroupsByAge(groups).get(0); - String timestamp = new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN).format(new Date(oldestGroup.age)); + String timestamp = new SimpleDateFormat(BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN).format(new Date(oldestGroup.age)); log(log, "All data sets of the selected group have been accessed at " + timestamp + " or before."); return oldestGroup.group.getList(); } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicyTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicyTest.java index 7c1cb5e376b..50ebaba79c7 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicyTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/plugins/GroupingPolicyTest.java @@ -516,7 +516,7 @@ public class GroupingPolicyTest extends AbstractAutoArchiverPolicyTestCase private String oldestLog(long timestamp) { return String.format("All data sets of the selected group have been accessed at %s or before.", - new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN).format(new Date(timestamp))); + new SimpleDateFormat(BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN).format(new Date(timestamp))); } private String mergedLog(int groups) diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/CountStopCondition.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/CountStopCondition.java index bb475898bd4..a88bf2d5136 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/CountStopCondition.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/CountStopCondition.java @@ -54,7 +54,7 @@ public class CountStopCondition implements ILogMonitoringStopCondition { count++; operationLog.info(count + " of " + n + " expected entry detected at line " + logEntry.getLineIndex() + " at " - + new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN).format(logEntry.getTimestamp())); + + new SimpleDateFormat(BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN).format(logEntry.getTimestamp())); return count >= n; } return false; diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/ParsedLogEntry.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/ParsedLogEntry.java index 83d3772f67b..577fd1f0cf5 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/ParsedLogEntry.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/ParsedLogEntry.java @@ -23,7 +23,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant; public final class ParsedLogEntry { - private static final String FORMAT_TEMPLATE = "[{0,date," + BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN + "}][{1}][{2}][{3}]"; + private static final String FORMAT_TEMPLATE = "[{0,date," + BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN + "}][{1}][{2}][{3}]"; private int lineIndex; diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java index 298b3e7c754..fa468c6baaf 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/SystemTestCase.java @@ -62,7 +62,6 @@ import ch.systemsx.cisd.etlserver.ETLDaemon; import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction; import ch.systemsx.cisd.openbis.dss.generic.server.DataStoreServer; import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil; -import ch.systemsx.cisd.openbis.generic.server.dataaccess.util.UpdateUtils; import ch.systemsx.cisd.openbis.generic.server.util.TestInitializer; import ch.systemsx.cisd.openbis.generic.shared.Constants; import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant; @@ -342,7 +341,7 @@ public abstract class SystemTestCase extends AssertJUnit List<ParsedLogEntry> result = new ArrayList<ParsedLogEntry>(); String[] logLines = getLogAppender().getLogContent().split("\n"); Pattern pattern = Pattern.compile("^(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}),\\d{3} ([^ ]*) \\[([^\\]]*)\\] (.*)$"); - SimpleDateFormat dateFormat = new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN); + SimpleDateFormat dateFormat = new SimpleDateFormat(BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN); ParsedLogEntry logEntry = null; for (int i = lineIndex; i < logLines.length; i++) { diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SearchCriteriaTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SearchCriteriaTranslator.java index b0fe1b74e2f..34abc36374b 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SearchCriteriaTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/SearchCriteriaTranslator.java @@ -57,11 +57,13 @@ import static ch.systemsx.cisd.openbis.generic.shared.dto.TableNames.METAPROJECT public class SearchCriteriaTranslator { - public static final DateFormat DATE_FORMAT = new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN); + public static final DateFormat DATE_HOURS_MINUTES_SECONDS_FORMAT = new SimpleDateFormat( + BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN); - public static final DateFormat DATE_WITHOUT_TIME_FORMAT = new SimpleDateFormat(BasicConstant.DATE_WITHOUT_TIME_FORMAT_PATTERN); + public static final DateFormat DATE_HOURS_MINUTES_FORMAT = new SimpleDateFormat( + BasicConstant.DATE_HOURS_MINUTES_PATTERN); - public static final DateFormat DATE_WITH_SHORT_TIME_FORMAT = new SimpleDateFormat(BasicConstant.DATE_WITH_SHORT_TIME_PATTERN); + public static final DateFormat DATE_FORMAT = new SimpleDateFormat(BasicConstant.DATE_PATTERN); public static final String MAIN_TABLE_ALIAS = getAlias(new AtomicInteger(0)); diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/condition/utils/TranslatorUtils.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/condition/utils/TranslatorUtils.java index 089b56d056e..98deec69f3e 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/condition/utils/TranslatorUtils.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/search/translator/condition/utils/TranslatorUtils.java @@ -17,13 +17,12 @@ package ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.condition.utils; import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SQLLexemes.*; +import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator.DATE_HOURS_MINUTES_SECONDS_FORMAT; import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator.DATE_FORMAT; -import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator.DATE_WITHOUT_TIME_FORMAT; -import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator.DATE_WITH_SHORT_TIME_FORMAT; +import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator.DATE_HOURS_MINUTES_FORMAT; import static ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator.MAIN_TABLE_ALIAS; import static ch.systemsx.cisd.openbis.generic.shared.dto.ColumnNames.*; import static ch.systemsx.cisd.openbis.generic.shared.dto.TableNames.CONTROLLED_VOCABULARY_TERM_TABLE; -import static ch.systemsx.cisd.openbis.generic.shared.dto.TableNames.MATERIALS_TABLE; import static ch.systemsx.cisd.openbis.generic.shared.dto.TableNames.PROJECTS_TABLE; import static ch.systemsx.cisd.openbis.generic.shared.dto.TableNames.RELATIONSHIP_TYPES_TABLE; import static ch.systemsx.cisd.openbis.generic.shared.dto.TableNames.SPACES_TABLE; @@ -70,7 +69,6 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.StringStartsWithVa import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.TimeZone; import ch.ethz.sis.openbis.generic.server.asapi.v3.search.PSQLTypes; import ch.ethz.sis.openbis.generic.server.asapi.v3.search.mapper.TableMapper; -import ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SQLLexemes; import ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.SearchCriteriaTranslator; import ch.ethz.sis.openbis.generic.server.asapi.v3.search.translator.condition.IAliasFactory; import ch.systemsx.cisd.openbis.generic.shared.basic.BasicConstant; @@ -80,11 +78,11 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.TableNames; public class TranslatorUtils { - public static final DateTimeFormatter DATE_WITHOUT_TIME_FORMATTER = DateTimeFormatter.ofPattern(BasicConstant.DATE_WITHOUT_TIME_FORMAT_PATTERN); + public static final DateTimeFormatter DATE_WITHOUT_TIME_FORMATTER = DateTimeFormatter.ofPattern(BasicConstant.DATE_PATTERN); - public static final DateTimeFormatter DATE_WITH_SHORT_TIME_FORMATTER = DateTimeFormatter.ofPattern(BasicConstant.DATE_WITH_SHORT_TIME_PATTERN); + public static final DateTimeFormatter DATE_WITH_SHORT_TIME_FORMATTER = DateTimeFormatter.ofPattern(BasicConstant.DATE_HOURS_MINUTES_PATTERN); - public static final DateTimeFormatter DATE_WITHOUT_TIMEZONE_FORMATTER = DateTimeFormatter.ofPattern(BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN); + public static final DateTimeFormatter DATE_WITHOUT_TIMEZONE_FORMATTER = DateTimeFormatter.ofPattern(BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN); /** Indicator that the property is internal. */ private static final String INTERNAL_PROPERTY_PREFIX = "$"; @@ -443,7 +441,7 @@ public class TranslatorUtils if (fieldValue instanceof AbstractDateValue) { // String type date value. - args.add(getDate((AbstractDateValue) fieldValue)); + args.add(parseDate(((AbstractDateValue) fieldValue).getValue())); } else { // Date type date value. @@ -451,22 +449,21 @@ public class TranslatorUtils } } - private static Date getDate(final AbstractDateValue fieldValue) + private static Date parseDate(final String dateString) { - final String dateString = fieldValue.getValue(); try { - return DATE_FORMAT.parse(dateString); + return DATE_HOURS_MINUTES_SECONDS_FORMAT.parse(dateString); } catch (final ParseException e1) { try { - return DATE_WITH_SHORT_TIME_FORMAT.parse(dateString); + return DATE_HOURS_MINUTES_FORMAT.parse(dateString); } catch (ParseException e2) { try { - return DATE_WITHOUT_TIME_FORMAT.parse(dateString); + return DATE_FORMAT.parse(dateString); } catch (final ParseException e3) { throw new IllegalArgumentException("Illegal date [dateString='" + dateString + "']", e3); @@ -614,6 +611,10 @@ public class TranslatorUtils { return Double.parseDouble(value); } + if (Date.class == klass) + { + return parseDate(value); + } return value; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java index bbce31d8424..a668eb6a873 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/PropertyValueRenderers.java @@ -242,7 +242,7 @@ public final class PropertyValueRenderers Dict.DELETION_TEMPLATE, rendererPerson(deletion.getRegistrator()), DateRenderer.renderDate(deletion.getRegistrationDate(), - BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN), deletion.getReason()); + BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN), deletion.getReason()); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/RevertDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/RevertDeletionConfirmationDialog.java index 337578a13be..deee6876cc5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/RevertDeletionConfirmationDialog.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/RevertDeletionConfirmationDialog.java @@ -119,7 +119,7 @@ public final class RevertDeletionConfirmationDialog extends AbstractDataConfirma String deletedBy = deletion.getRegistrator().toString(); String deletionDate = DateRenderer.renderDate(deletion.getRegistrationDate(), - BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN); + BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN); String deletionReason = StringEscapeUtils.unescapeHtml(deletion.getReason()); return viewContext.getMessage(Dict.REVERT_ENTITY_DELETION_CONFIRMATION_MSG, deletedEntity, deletedBy, deletionDate, deletionReason); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java index 8aea94d81c3..4a7c2bc8466 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property/PropertyGrid.java @@ -83,7 +83,7 @@ public final class PropertyGrid extends Grid private final void registerDefaultPropertyValueRenderers() { registerPropertyValueRenderer(Date.class, new DatePropertyValueRenderer(messageProvider, - BasicConstant.DATE_WITHOUT_TIMEZONE_PATTERN)); + BasicConstant.DATE_HOURS_MINUTES_SECONDS_PATTERN)); // Common registerPropertyValueRenderer(Person.class, PropertyValueRenderers.createPersonPropertyValueRenderer(messageProvider)); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java index 4a37a8e1453..2571f238920 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/HistoryWidget.java @@ -210,7 +210,7 @@ public class HistoryWidget extends ContentPanel final Widget link = LinkRenderer.getLinkWidget(displayText, listener, href); final String date = DateRenderer.renderDate(new Date(visit.getTimeStamp()), - BasicConstant.DATE_WITH_SHORT_TIME_PATTERN); + BasicConstant.DATE_HOURS_MINUTES_PATTERN); FlowPanel panel = new FlowPanel(); panel.add(link); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/BasicConstant.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/BasicConstant.java index 978e14e2ef7..79b35a5961d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/BasicConstant.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/BasicConstant.java @@ -98,17 +98,17 @@ public class BasicConstant /** * Date format which does not include time zone. */ - public static final String DATE_WITHOUT_TIMEZONE_PATTERN = "yyyy-MM-dd HH:mm:ss"; + public static final String DATE_HOURS_MINUTES_SECONDS_PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * Date format which does not include time and time zone. */ - public static final String DATE_WITHOUT_TIME_FORMAT_PATTERN = "yyyy-MM-dd"; + public static final String DATE_PATTERN = "yyyy-MM-dd"; /** * Date format which does not include seconds & time zone. */ - public static final String DATE_WITH_SHORT_TIME_PATTERN = "yyyy-MM-dd HH:mm"; + public static final String DATE_HOURS_MINUTES_PATTERN = "yyyy-MM-dd HH:mm"; // constants used for link creation and handling diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/SearchExperimentTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/SearchExperimentTest.java index 7f23dcbd20d..aad16615229 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/SearchExperimentTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/SearchExperimentTest.java @@ -648,11 +648,15 @@ public class SearchExperimentTest extends AbstractExperimentTest experimentCreation.setProperty(propertyType.getPermId(), "/CISD/CL1"); v3api.createExperiments(sessionToken, Arrays.asList(experimentCreation)); - final ExperimentSearchCriteria criteria = new ExperimentSearchCriteria(); - criteria.withOrOperator(); - criteria.withAnyProperty().thatEquals("/CISD/CL1"); - - testSearch(TEST_USER, criteria, 1); +// final ExperimentSearchCriteria withAnyPropertySearchCriteria = new ExperimentSearchCriteria(); +// withAnyPropertySearchCriteria.withOrOperator(); +// withAnyPropertySearchCriteria.withAnyProperty().thatStartsWith("/CISD/CL"); +// testSearch(TEST_USER, withAnyPropertySearchCriteria, "/CISD/DEFAULT/SAMPLE_PROPERTY_TEST"); + + final ExperimentSearchCriteria withPropertySearchCriteria = new ExperimentSearchCriteria(); + withPropertySearchCriteria.withOrOperator(); + withPropertySearchCriteria.withProperty(propertyType.getPermId()).thatStartsWith("/CISD/CL"); + testSearch(TEST_USER, withPropertySearchCriteria, "/CISD/DEFAULT/SAMPLE_PROPERTY_TEST"); v3api.logout(sessionToken); } @@ -953,6 +957,14 @@ public class SearchExperimentTest extends AbstractExperimentTest "search-experiments SEARCH_CRITERIA:\n'EXPERIMENT\n with operator 'AND'\n with attribute 'code' starts with 'EXP1'\n with property 'DESCRIPTION' equal to 'abc'\n'\nFETCH_OPTIONS:\n'Experiment\n with History\n with Modifier\n'"); } + @Test + public void testSearchForExperimentWithDatePropertyUsingWithProperty() + { + final ExperimentSearchCriteria criteria = new ExperimentSearchCriteria(); + criteria.withProperty("PURCHASE_DATE").thatEquals("2009-02-09 10:00:00 +0100"); + testSearch(TEST_USER, criteria, 1); + } + private void testSearch(String user, ExperimentSearchCriteria criteria, String... expectedIdentifiers) { String sessionToken = v3api.login(user, PASSWORD); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtils.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtils.java index 623e005fcaa..75c8aa591e4 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtils.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/utils/EntityTypeLabelUtils.java @@ -146,7 +146,7 @@ public class EntityTypeLabelUtils private static String renderDate(DatasetReference datasetReference) { return DateRenderer.renderDate(datasetReference.getRegistrationDate(), - BasicConstant.DATE_WITHOUT_TIME_FORMAT_PATTERN); + BasicConstant.DATE_PATTERN); } private static String getDatasetUserFriendlyTypeCode(DatasetReference datasetReference) -- GitLab