diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java index 17b3c05db54020b855841e8d0e7e7fbd94379151..f2a56c6d07a84fb56be8c463735763c75ae690a5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExperimentBrowserGridColumnIDs.java @@ -27,7 +27,7 @@ public class ExperimentBrowserGridColumnIDs public static final String EXPERIMENT_TYPE = "EXPERIMENT_TYPE"; public static final String EXPERIMENT_IDENTIFIER = "EXPERIMENT_IDENTIFIER"; public static final String DATABASE_INSTANCE = "DATABASE_INSTANCE"; - public static final String GROUP = "GROUP"; + public static final String SPACE = "SPACE"; public static final String PROJECT = "PROJECT"; public static final String REGISTRATOR = "REGISTRATOR"; public static final String REGISTRATION_DATE = "REGISTRATION_DATE"; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java index a23806e1cb3a628dc6c86e7bba25cbbf4e2ab3b4..7621b23749c44a292decb3ae322a5704f379e130 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProvider.java @@ -20,7 +20,7 @@ import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentB import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.DATABASE_INSTANCE; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.EXPERIMENT_IDENTIFIER; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.EXPERIMENT_TYPE; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.GROUP; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.SPACE; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.IS_INVALID; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.PERM_ID; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentBrowserGridColumnIDs.PROJECT; @@ -72,7 +72,7 @@ public class ExperimentProvider extends AbstractCommonTableModelProvider<Experim builder.addColumn(EXPERIMENT_TYPE).hideByDefault(); builder.addColumn(EXPERIMENT_IDENTIFIER).hideByDefault().withDefaultWidth(150); builder.addColumn(DATABASE_INSTANCE).hideByDefault(); - builder.addColumn(GROUP).hideByDefault(); + builder.addColumn(SPACE).hideByDefault(); builder.addColumn(PROJECT).hideByDefault(); builder.addColumn(REGISTRATOR); builder.addColumn(REGISTRATION_DATE).withDefaultWidth(200); @@ -87,7 +87,7 @@ public class ExperimentProvider extends AbstractCommonTableModelProvider<Experim builder.column(EXPERIMENT_TYPE).addString(experiment.getExperimentType().getCode()); builder.column(EXPERIMENT_IDENTIFIER).addString(experiment.getIdentifier()); builder.column(DATABASE_INSTANCE).addString(experiment.getProject().getSpace().getInstance().getCode()); - builder.column(GROUP).addString(experiment.getProject().getSpace().getCode()); + builder.column(SPACE).addString(experiment.getProject().getSpace().getCode()); builder.column(PROJECT).addString(experiment.getProject().getCode()); builder.column(REGISTRATOR).addPerson(experiment.getRegistrator()); builder.column(REGISTRATION_DATE).addDate(experiment.getRegistrationDate()); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java new file mode 100644 index 0000000000000000000000000000000000000000..0050114edd6224fe16e3fed9d78e531330bbcd91 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ExperimentProviderTest.java @@ -0,0 +1,104 @@ +/* + * Copyright 2011 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.client.web.server.resultset; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import org.jmock.Expectations; +import org.testng.annotations.Test; + +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListExperimentsCriteria; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Space; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentBuilder; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.ExperimentTypeBuilder; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.PersonBuilder; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; + + +/** + * + * + * @author Franz-Josef Elmer + */ +public class ExperimentProviderTest extends AbstractProviderTest +{ + @Test + public void test() + { + ListExperimentsCriteria criteria = new ListExperimentsCriteria(); + final ExperimentType experimentType = new ExperimentType(); + criteria.setExperimentType(experimentType); + Project project = new Project(); + project.setCode("project"); + Space space = new Space(); + space.setCode("space"); + project.setSpace(space); + criteria.setProject(project); + final ExperimentBuilder e1 = + new ExperimentBuilder() + .code("E1") + .identifier("DB:/A/B/E1") + .date(new Date(1000123456)) + .invalidate() + .permID("123-45") + .type("1") + .registrator( + new PersonBuilder().name("Albert", "Einstein").userID("ae") + .getPerson()).property("NUMBER", "42"); + context.checking(new Expectations() + { + { + one(server).listExperimentTypes(SESSION_TOKEN); + ExperimentType type1 = + new ExperimentTypeBuilder().code("1") + .propertyType("TEXT", "text", DataTypeCode.MULTILINE_VARCHAR) + .propertyType("NUMBER", "number", DataTypeCode.REAL) + .getExperimentType(); + will(returnValue(Arrays.asList(type1))); + + one(server).listExperiments(SESSION_TOKEN, experimentType, + new ProjectIdentifier("space", "project")); + will(returnValue(Arrays.asList(e1.getExperiment()))); + } + }); + + TypedTableModel<Experiment> tableModel = + new ExperimentProvider(server, SESSION_TOKEN, criteria).getTableModel(100); + assertEquals("[CODE, EXPERIMENT_TYPE, EXPERIMENT_IDENTIFIER, DATABASE_INSTANCE, SPACE, " + + "PROJECT, REGISTRATOR, REGISTRATION_DATE, IS_INVALID, PERM_ID, " + + "SHOW_DETAILS_LINK, property-USER-NUMBER, property-USER-TEXT]", + getHeaderIDs(tableModel).toString()); + assertEquals("[VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, TIMESTAMP, " + + "VARCHAR, VARCHAR, VARCHAR, VARCHAR, MULTILINE_VARCHAR]", + getHeaderDataTypes(tableModel).toString()); + assertEquals("[null, null, null, null, null, null, null, null, null, null, " + + "null, null, null]", getHeaderEntityKinds(tableModel).toString()); + List<TableModelRowWithObject<Experiment>> rows = tableModel.getRows(); + assertSame(e1.getExperiment(), rows.get(0).getObjectOrNull()); + assertEquals("[E1, 1, DB:/A/B/E1, DB, A, B, Einstein, Albert, Mon Jan 12 14:48:43 CET 1970, " + + "yes, 123-45, , 42, ]", rows.get(0).getValues().toString()); + context.assertIsSatisfied(); + } +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java index 21a5c52b4b4836e61c8d984711d28a70673bdef7..6681b0a6f03d3d94b148350ac45a00938221d449 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentBuilder.java @@ -103,6 +103,12 @@ public class ExperimentBuilder return this; } + public ExperimentBuilder registrator(Person registrator) + { + experiment.setRegistrator(registrator); + return this; + } + public ExperimentBuilder date(Date date) { experiment.setRegistrationDate(date); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentTypeBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentTypeBuilder.java new file mode 100644 index 0000000000000000000000000000000000000000..81e589bee964d8208ba64abc33daa82d92877af6 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/ExperimentTypeBuilder.java @@ -0,0 +1,72 @@ +/* + * Copyright 2011 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders; + +import java.util.ArrayList; +import java.util.List; + +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentTypePropertyType; + +/** + * + * + * @author Franz-Josef Elmer + */ +public class ExperimentTypeBuilder extends AbstractEntityTypeBuilder +{ + private ExperimentType experimentType = new ExperimentType(); + + public ExperimentTypeBuilder() + { + experimentType.setExperimentTypePropertyTypes(new ArrayList<ExperimentTypePropertyType>()); + } + + public ExperimentTypeBuilder code(String code) + { + experimentType.setCode(code); + return this; + } + + public ExperimentType getExperimentType() + { + return experimentType; + } + + public ExperimentTypeBuilder propertyType(String code, String label, DataTypeCode dataType) + { + addPropertyType(experimentType, new ExperimentTypePropertyType(), code, label, dataType); + return this; + } + + protected void addPropertyType(ExperimentType entityType, ExperimentTypePropertyType entityTypePropertyType, String code, String label, + DataTypeCode type) + { + List<ExperimentTypePropertyType> types = entityType.getAssignedPropertyTypes(); + PropertyType propertyType = new PropertyType(); + propertyType.setCode(code); + propertyType.setSimpleCode(code); + propertyType.setLabel(label); + propertyType.setDataType(new DataType(type)); + entityTypePropertyType.setPropertyType(propertyType); + entityTypePropertyType.setEntityType(entityType); + types.add(entityTypePropertyType); + } +}