package com.constellio.model.services.schemas.builders;
import static com.constellio.model.entities.schemas.MetadataValueType.CONTENT;
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.services.contents.ContentFactory;
import com.constellio.model.services.schemas.testimpl.TestStructureFactory1;
public class MetadataBuilder_StructureFactoriesTest extends MetadataBuilderTest {
@Test
public void givenRecordMetadataStructureFactoryDefinedInInheritedMetadataWhenBuildingThenInherited()
throws Exception {
inheritedMetadataBuilder.setType(STRING).defineStructureFactory(TestStructureFactory1.class);
build();
assertThat(inheritedMetadata.getStructureFactory().getClass()).isEqualTo(TestStructureFactory1.class);
assertThat(metadataWithInheritance.getStructureFactory().getClass()).isEqualTo(TestStructureFactory1.class);
}
@Test
public void givenRecordMetadataStructureFactoryDefinedInInheritedMetadataWhenModifyingThenInherited()
throws Exception {
inheritedMetadataBuilder.setType(STRING).defineStructureFactory(TestStructureFactory1.class);
buildAndModify();
assertThat(inheritedMetadataBuilder.getStructureFactory()).isEqualTo(TestStructureFactory1.class);
assertThat(metadataWithInheritanceBuilder.getStructureFactory()).isEqualTo(TestStructureFactory1.class);
}
@Test
public void givenContentTypeMetadataThenHasContentInfoFactory()
throws Exception {
inheritedMetadataBuilder.setType(CONTENT);
buildAndModify();
assertThat(inheritedMetadataBuilder.getStructureFactory()).isEqualTo(ContentFactory.class);
assertThat(metadataWithInheritanceBuilder.getStructureFactory()).isEqualTo(ContentFactory.class);
}
}