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_EnableFlagTest extends MetadataBuilderTest {
@Test
public void givenEnabledFlagOfMetadataWithoutInheritanceIsNullWhenBuildingThenSetToTrue() {
metadataWithoutInheritanceBuilder.setType(STRING).setEnabled(null);
build();
assertThat(metadataWithoutInheritance.isEnabled()).isTrue();
}
@Test
public void givenEnabledFlagOfMetadataWithoutInheritanceIsNullWhenModifyingThenSetToTrue() {
metadataWithoutInheritanceBuilder.setType(STRING).setEnabled(null);
buildAndModify();
assertThat(metadataWithoutInheritanceBuilder.getEnabled()).isTrue();
}
@Test
public void givenEnabledFlagOfMetadataWithoutInheritanceIsNotDefinedWhenBuildingThenSetToTrue() {
metadataWithoutInheritanceBuilder.setType(STRING);
build();
assertThat(metadataWithoutInheritance.isEnabled()).isTrue();
}
@Test
public void givenEnabledFlagOfMetadataWithoutInheritanceIsFalseWhenBuildingThenSetToFalse() {
metadataWithoutInheritanceBuilder.setType(STRING).setEnabled(false);
build();
assertThat(metadataWithInheritance.isEnabled()).isFalse();
}
@Test
public void givenEnabledFlagOfMetadataWithoutInheritanceIsFalseWhenModifyingThenSetToFalse() {
metadataWithoutInheritanceBuilder.setType(STRING).setEnabled(false);
buildAndModify();
assertThat(metadataWithoutInheritanceBuilder.getEnabled()).isFalse();
}
@Test
public void givenEnabledFlagOfMetadataWithInheritanceIsDifferentWhenBuildingThenSetToCustomizedValue() {
inheritedMetadataBuilder.setType(STRING).setEnabled(false);
metadataWithInheritanceBuilder.setEnabled(true);
build();
assertThat(inheritedMetadata.isEnabled()).isFalse();
assertThat(metadataWithInheritance.isEnabled()).isTrue();
}
@Test
public void givenEnabledFlagOfMetadataWithInheritanceIsDifferentWhenModifyingThenSetToCustomizedValue() {
inheritedMetadataBuilder.setType(STRING).setEnabled(false);
metadataWithInheritanceBuilder.setEnabled(true);
buildAndModify();
assertThat(inheritedMetadataBuilder.getEnabled()).isFalse();
assertThat(metadataWithInheritanceBuilder.getEnabled()).isTrue();
}
@Test
public void givenEnabledFlagOfMetadataWithInheritanceIsNullWhenBuildingThenSetToInheritedValue() {
inheritedMetadataBuilder.setType(STRING).setEnabled(false);
metadataWithInheritanceBuilder.setEnabled(null);
build();
assertThat(inheritedMetadata.isEnabled()).isFalse();
assertThat(metadataWithInheritance.isEnabled()).isFalse();
}
@Test
public void givenEnabledFlagOfMetadataWithInheritanceIsNullWhenModifyingThenSetToNull() {
inheritedMetadataBuilder.setType(STRING).setEnabled(false);
metadataWithInheritanceBuilder.setEnabled(null);
buildAndModify();
assertThat(inheritedMetadataBuilder.getEnabled()).isFalse();
assertThat(metadataWithInheritanceBuilder.getEnabled()).isNull();
}
@Test
public void givenEnabledFlagOfMetadataWithInheritanceIsSameAsInheritanceWhenModifyingThenSetToNull() {
inheritedMetadataBuilder.setType(STRING).setEnabled(false);
metadataWithInheritanceBuilder.setEnabled(false);
buildAndModify();
assertThat(inheritedMetadataBuilder.getEnabled()).isFalse();
assertThat(metadataWithInheritanceBuilder.getEnabled()).isNull();
}
}