package com.constellio.model.services.schemas.builders; import static org.assertj.core.api.Assertions.assertThat; import org.junit.Test; import com.constellio.model.entities.Language; import com.constellio.model.entities.schemas.MetadataValueType; public class MetadataBuilder_LabelTest extends MetadataBuilderTest { @Test(expected = MetadataBuilderRuntimeException.InvalidAttribute.class) public void givenLabelOfMetadataWithoutInheritanceISNullLabelWhenBuildingThenException() { metadataWithoutInheritanceBuilder.setType(MetadataValueType.STRING).addLabel(Language.French, null); build(); } @Test public void givenLabelOfMetadataWithInheritanceIsNullWhenBuildingThenSetToInheritedValue() { inheritedMetadataBuilder.setType(MetadataValueType.STRING).addLabel(Language.French, "default label"); metadataWithInheritanceBuilder.addLabel(Language.French, null); build(); assertThat(metadataWithInheritance.getLabel(Language.French)).isEqualTo("default label"); } @Test public void givenLabelOfMetadataWithInheritanceIsNullWhenModifyingThenSetToNull() { inheritedMetadataBuilder.setType(MetadataValueType.STRING).addLabel(Language.French, "default label"); metadataWithInheritanceBuilder.addLabel(Language.French, null); buildAndModify(); assertThat(metadataWithInheritanceBuilder.getLabel(Language.French)).isNull(); } @Test public void givenLabelOfMetadataWithInheritanceIsSameAsItInheritanceWhenModifyingThenSetToNull() { inheritedMetadataBuilder.setType(MetadataValueType.STRING).addLabel(Language.French, "default label"); metadataWithInheritanceBuilder.addLabel(Language.French, "default label"); buildAndModify(); assertThat(metadataWithInheritanceBuilder.getLabel(Language.French)).isNull(); } @Test public void givenLabelOfMetadataWithInheritanceIsDifferentWhenBuildingThenSetToCustomizedValue() { inheritedMetadataBuilder.setType(MetadataValueType.STRING).addLabel(Language.French, "default label"); metadataWithInheritanceBuilder.addLabel(Language.French, "custom label"); build(); assertThat(metadataWithInheritance.getLabel(Language.French)).isEqualTo("custom label"); } @Test public void givenLabelOfMetadataWithInheritanceIsDifferentWhenModifyingThenSetToCustomizedValue() { inheritedMetadataBuilder.setType(MetadataValueType.STRING).addLabel(Language.French, "default label"); metadataWithInheritanceBuilder.addLabel(Language.French, "custom label"); buildAndModify(); assertThat(metadataWithInheritanceBuilder.getLabel(Language.French)).isEqualTo("custom label"); } @Test public void givenLabelOfMetadataWithInheritanceIsNotDefinedWhenBuildingThenSetToCodeValue() { inheritedMetadataBuilder.setType(MetadataValueType.STRING); build(); assertThat(inheritedMetadataBuilder.getLabel(Language.French)).isEqualTo(CODE_DEFAULT_METADATA); } @Test(expected = MetadataBuilderRuntimeException.InvalidAttribute.class) public void givenCodeFinishingWithIdThenException() throws Exception { MetadataBuilder.createMetadataWithoutInheritance(CODE_DEFAULT_METADATA + "pid", schemaBuilder).buildWithoutInheritance(typesFactory, modelLayerFactory); } }