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;
import com.constellio.model.entities.schemas.MetadataTransiency;
public class MetadataBuilder_TransiencyFlagTest extends MetadataBuilderTest {
@Test
public void givenTransiencyFlagUndefinedOnMetadataWithoutInheritanceWhenBuildingThenSingleValue()
throws Exception {
inheritedMetadataBuilder.setType(STRING)
.defineDataEntry().asJexlScript("title");
build();
assertThat(metadataWithoutInheritance.getTransiency()).isEqualTo(MetadataTransiency.PERSISTED);
}
@Test
public void givenTransiencyFlagUndefinedOnMetadataWithoutInheritanceWhenModifyingThenSingleValue()
throws Exception {
inheritedMetadataBuilder.setType(STRING)
.defineDataEntry().asJexlScript("title");
buildAndModify();
assertThat(metadataWithoutInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.PERSISTED);
}
@Test
public void givenTransiencyFlagSetToFalseOnMetadataWithoutInheritanceWhenBuildingThenSingleValue()
throws Exception {
metadataWithoutInheritanceBuilder.setType(STRING).setTransiency(MetadataTransiency.PERSISTED)
.defineDataEntry().asJexlScript("title");
build();
assertThat(metadataWithoutInheritance.getTransiency()).isEqualTo(MetadataTransiency.PERSISTED);
}
@Test
public void givenTransiencyFlagSetToFalseOnMetadataWithoutInheritanceWhenModifyingThenSingleValue()
throws Exception {
metadataWithoutInheritanceBuilder.setType(STRING).setTransiency(MetadataTransiency.PERSISTED)
.defineDataEntry().asJexlScript("title");
buildAndModify();
assertThat(metadataWithoutInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.PERSISTED);
}
@Test
public void givenTransiencyFlagSetToTransiencyLazyOnMetadataWithoutInheritanceWhenBuildingThenTransiency()
throws Exception {
metadataWithoutInheritanceBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_LAZY)
.defineDataEntry().asJexlScript("title");
build();
assertThat(metadataWithoutInheritance.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_LAZY);
}
@Test
public void givenTransiencyFlagSetToTransiencyEagerOnMetadataWithoutInheritanceWhenBuildingThenTransiency()
throws Exception {
metadataWithoutInheritanceBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_EAGER)
.defineDataEntry().asJexlScript("title");
build();
assertThat(metadataWithoutInheritance.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_EAGER);
}
@Test
public void givenTransiencyFlagSetToTransiencyLazyOnMetadataWithoutInheritanceWhenModifyingThenTransiency()
throws Exception {
metadataWithoutInheritanceBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_LAZY)
.defineDataEntry().asJexlScript("title");
buildAndModify();
assertThat(metadataWithoutInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_LAZY);
}
@Test
public void givenTransiencyFlagSetToTransiencyEagerOnMetadataWithoutInheritanceWhenModifyingThenTransiency()
throws Exception {
metadataWithoutInheritanceBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_EAGER)
.defineDataEntry().asJexlScript("title");
buildAndModify();
assertThat(metadataWithoutInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_EAGER);
}
@Test
public void givenTransiencyFlagOnMetadataWithInheritanceWhenBuildingThenSetToInheritedValue()
throws Exception {
inheritedMetadataBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_LAZY)
.defineDataEntry().asJexlScript("title");
build();
assertThat(metadataWithInheritance.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_LAZY);
}
@Test
public void givenTransiencyFlagOnMetadataWithInheritanceWhenModifyingThenSetToInheritedValue()
throws Exception {
inheritedMetadataBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_LAZY)
.defineDataEntry().asJexlScript("title");
buildAndModify();
assertThat(metadataWithInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_LAZY);
}
@Test
public void givenTransiencyLazyFlagModifiedInInheritedMetadataBuilderThenModifiedInMetadataWithHeritance()
throws Exception {
inheritedMetadataBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_LAZY)
.defineDataEntry().asJexlScript("title");
assertThat(metadataWithInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_LAZY);
}
@Test
public void givenTransiencyEagerFlagModifiedInInheritedMetadataBuilderThenModifiedInMetadataWithHeritance()
throws Exception {
inheritedMetadataBuilder.setType(STRING).setTransiency(MetadataTransiency.TRANSIENT_EAGER)
.defineDataEntry().asJexlScript("title");
assertThat(metadataWithInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.TRANSIENT_EAGER);
}
@Test
public void givenFalseFlagModifiedInInheritedMetadataBuilderThenModifiedInMetadataWithHeritance()
throws Exception {
inheritedMetadataBuilder.setType(STRING).setTransiency(MetadataTransiency.PERSISTED)
.defineDataEntry().asJexlScript("title");
assertThat(metadataWithInheritanceBuilder.getTransiency()).isEqualTo(MetadataTransiency.PERSISTED);
}
}