package com.constellio.model.services.schemas.builders; import static com.constellio.model.entities.schemas.MetadataValueType.STRING; import static org.assertj.core.api.Assertions.assertThat; import org.junit.Test; public class MetadataBuilder_DuplicableFlagTest extends MetadataBuilderTest { @Test public void givenDuplicableFlagOfMetadataWithoutInheritanceIsNullWhenBuildingThenSetToTrue() { metadataWithoutInheritanceBuilder.setType(STRING).setDuplicable(null); build(); assertThat(metadataWithoutInheritance.isDuplicable()).isFalse(); } @Test public void givenDuplicableFlagOfMetadataWithoutInheritanceIsNullWhenModifyingThenSetToTrue() { metadataWithoutInheritanceBuilder.setType(STRING).setDuplicable(null); buildAndModify(); assertThat(metadataWithoutInheritanceBuilder.isDuplicable()).isFalse(); } @Test public void givenDuplicableFlagOfMetadataWithoutInheritanceIsNotDefinedWhenBuildingThenSetToTrue() { metadataWithoutInheritanceBuilder.setType(STRING); build(); assertThat(metadataWithoutInheritance.isDuplicable()).isFalse(); } @Test public void givenDuplicableFlagOfMetadataWithoutInheritanceIsFalseWhenBuildingThenSetToFalse() { metadataWithoutInheritanceBuilder.setType(STRING).setDuplicable(false); build(); assertThat(metadataWithInheritance.isDuplicable()).isFalse(); } @Test public void givenDuplicableFlagOfMetadataWithoutInheritanceIsFalseWhenModifyingThenSetToFalse() { metadataWithoutInheritanceBuilder.setType(STRING).setDuplicable(false); buildAndModify(); assertThat(metadataWithoutInheritanceBuilder.isDuplicable()).isFalse(); } @Test public void givenDuplicableFlagOfMetadataWithInheritanceIsDifferentWhenBuildingThenSetToCustomizedValue() { inheritedMetadataBuilder.setType(STRING).setDuplicable(false); metadataWithInheritanceBuilder.setDuplicable(true); build(); assertThat(inheritedMetadata.isDuplicable()).isFalse(); assertThat(metadataWithInheritance.isDuplicable()).isTrue(); } @Test public void givenDuplicableFlagOfMetadataWithInheritanceIsDifferentWhenModifyingThenSetToCustomizedValue() { inheritedMetadataBuilder.setType(STRING).setDuplicable(false); metadataWithInheritanceBuilder.setDuplicable(true); buildAndModify(); assertThat(inheritedMetadataBuilder.isDuplicable()).isFalse(); assertThat(metadataWithInheritanceBuilder.isDuplicable()).isTrue(); } @Test public void givenDuplicableFlagOfMetadataWithInheritanceIsNullWhenBuildingThenSetToInheritedValue() { inheritedMetadataBuilder.setType(STRING).setDuplicable(false); metadataWithInheritanceBuilder.setDuplicable(null); build(); assertThat(inheritedMetadata.isDuplicable()).isFalse(); assertThat(metadataWithInheritance.isDuplicable()).isFalse(); } @Test public void givenDuplicableFlagOfMetadataWithInheritanceIsNullWhenModifyingThenSetToNull() { inheritedMetadataBuilder.setType(STRING).setDuplicable(false); metadataWithInheritanceBuilder.setDuplicable(null); buildAndModify(); assertThat(inheritedMetadataBuilder.isDuplicable()).isFalse(); assertThat(metadataWithInheritanceBuilder.isDuplicable()).isNull(); } @Test public void givenDuplicableFlagOfMetadataWithInheritanceIsSameAsInheritanceWhenModifyingThenSetToNull() { inheritedMetadataBuilder.setType(STRING).setDuplicable(false); metadataWithInheritanceBuilder.setDuplicable(false); buildAndModify(); assertThat(inheritedMetadataBuilder.isDuplicable()).isFalse(); assertThat(metadataWithInheritanceBuilder.isDuplicable()).isNull(); } }