package com.constellio.app.ui.pages.search.criteria; import com.constellio.model.entities.EnumWithSmallCode; import com.constellio.model.entities.schemas.Metadata; import com.constellio.model.entities.schemas.MetadataSchema; import com.constellio.model.entities.schemas.MetadataValueType; import com.constellio.model.services.schemas.builders.MetadataSchemaBuilder; import com.constellio.sdk.tests.schemas.SchemasSetup; import com.constellio.sdk.tests.setups.SchemaShortcuts; public class SearchCriterionTestSetup extends SchemasSetup { public static final String SCHEMA_TYPE = "criterionTestRecord"; public static final String DEFAULT_SCHEMA = SCHEMA_TYPE + "_default"; public static final String A_STRING = "aString"; public static final String A_BOOLEAN = "aBoolean"; public static final String AN_INT = "anInt"; public static final String A_DOUBLE = "aDouble"; public static final String A_DATE = "aDate"; public static final String A_DATE_TIME = "aDateTime"; public static final String AN_ENUM = "anEnum"; public enum TestEnum implements EnumWithSmallCode { VALUE1("a"), VALUE2("b"), VALUE3("c"); private final String code; TestEnum(String code) { this.code = code; } @Override public String getCode() { return code; } } public SearchCriterionTestSetup(String collection) { super(collection); } @Override public void setUp() { MetadataSchemaBuilder builder = typesBuilder.createNewSchemaType(SCHEMA_TYPE).getDefaultSchema(); builder.create(A_STRING).setType(MetadataValueType.STRING); builder.create(A_BOOLEAN).setType(MetadataValueType.BOOLEAN); // We cannot have integers yet //builder.create(AN_INT).setType(MetadataValueType.INTEGER); builder.create(A_DOUBLE).setType(MetadataValueType.NUMBER); builder.create(A_DATE).setType(MetadataValueType.DATE); builder.create(A_DATE_TIME).setType(MetadataValueType.DATE_TIME); builder.create(AN_ENUM).defineAsEnum(TestEnum.class); } public CriterionTestRecord getShortcuts() { return new CriterionTestRecord(); } public class CriterionTestRecord implements SchemaShortcuts { @Override public String code() { return SCHEMA_TYPE; } @Override public String collection() { return collection; } @Override public MetadataSchema instance() { return getSchema(code()); } public Metadata aString() { return getMetadata(DEFAULT_SCHEMA + "_" + A_STRING); } public Metadata aBoolean() { return getMetadata(DEFAULT_SCHEMA + "_" + A_BOOLEAN); } public Metadata anInt() { return getMetadata(DEFAULT_SCHEMA + "_" + AN_INT); } public Metadata aDouble() { return getMetadata(DEFAULT_SCHEMA + "_" + A_DOUBLE); } public Metadata aDate() { return getMetadata(DEFAULT_SCHEMA + "_" + A_DATE); } public Metadata aDateTime() { return getMetadata(DEFAULT_SCHEMA + "_" + A_DATE_TIME); } public Metadata anEnum() { return getMetadata(DEFAULT_SCHEMA + "_" + AN_ENUM); } } }