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_RequirementTest extends MetadataBuilderTest { @Test public void givenDefaultRequirementFlagOfMetadataWithoutInheritanceIsNullWhenBuildingThenSetToFalse() { metadataWithoutInheritanceBuilder.setType(STRING).setDefaultRequirement(null); build(); assertThat(metadataWithoutInheritance.isDefaultRequirement()).isFalse(); } @Test public void givenDefaultRequirementFlagOfMetadataWithoutInheritanceIsNullWhenModifyingThenSetToFalse() { metadataWithoutInheritanceBuilder.setType(STRING).setDefaultRequirement(null); buildAndModify(); assertThat(metadataWithoutInheritanceBuilder.getDefaultRequirement()).isFalse(); } @Test public void givenDefaultRequirementFlagOfMetadataWithoutInheritanceIsNotDefinedWhenBuildingThenSetToFalse() { metadataWithoutInheritanceBuilder.setType(STRING); build(); assertThat(metadataWithoutInheritance.isDefaultRequirement()).isFalse(); } @Test public void givenDefaultRequirementFlagOfMetadataWithoutInheritanceIsTrueWhenBuildingThenSetToTrue() { metadataWithoutInheritanceBuilder.setType(STRING).setDefaultRequirement(true); build(); assertThat(metadataWithoutInheritanceBuilder.getDefaultRequirement()).isTrue(); } @Test public void givenDefaultRequirementFlagOfMetadataWithoutInheritanceIsTrueWhenModifyingThenSetToTrue() { metadataWithoutInheritanceBuilder.setType(STRING).setDefaultRequirement(true); buildAndModify(); assertThat(metadataWithoutInheritanceBuilder.getDefaultRequirement()).isTrue(); } @Test public void givenDefaultRequirementFlagOfMetadataWithInheritanceIsDifferentWhenBuildingThenSetToCustomizedValue() { inheritedMetadataBuilder.setType(STRING).setDefaultRequirement(false); metadataWithInheritanceBuilder.setDefaultRequirement(true); build(); assertThat(inheritedMetadata.isDefaultRequirement()).isFalse(); assertThat(metadataWithInheritance.isDefaultRequirement()).isTrue(); } @Test public void givenDefaultRequirementFlagOfMetadataWithInheritanceIsDifferentWhenModifyingThenSetToCustomizedValue() { inheritedMetadataBuilder.setType(STRING).setDefaultRequirement(false); metadataWithInheritanceBuilder.setDefaultRequirement(true); buildAndModify(); assertThat(inheritedMetadataBuilder.getDefaultRequirement()).isFalse(); assertThat(metadataWithInheritanceBuilder.getDefaultRequirement()).isTrue(); } @Test public void givenDefaultRequirementFlagOfMetadataWithInheritanceIsNullWhenBuildingThenSetToInheritedValue() { inheritedMetadataBuilder.setType(STRING).setDefaultRequirement(false); metadataWithInheritanceBuilder.setDefaultRequirement(null); build(); assertThat(inheritedMetadata.isDefaultRequirement()).isFalse(); assertThat(metadataWithInheritance.isDefaultRequirement()).isFalse(); } @Test public void givenDefaultRequirementFlagOfMetadataWithInheritanceIsNullWhenModifyingThenSetToNull() { inheritedMetadataBuilder.setType(STRING).setDefaultRequirement(false); metadataWithInheritanceBuilder.setDefaultRequirement(null); buildAndModify(); assertThat(inheritedMetadataBuilder.getDefaultRequirement()).isFalse(); assertThat(metadataWithInheritanceBuilder.getDefaultRequirement()).isNull(); } @Test public void givenDefaultRequirementFlagOfMetadataWithInheritanceIsSameAsInheritedWhenModifyingThenSetToNull() { inheritedMetadataBuilder.setType(STRING).setDefaultRequirement(true); metadataWithInheritanceBuilder.setDefaultRequirement(true); buildAndModify(); assertThat(inheritedMetadataBuilder.getDefaultRequirement()).isTrue(); assertThat(metadataWithInheritanceBuilder.getDefaultRequirement()).isNull(); } }