package com.constellio.model.entities.schemas;
import static com.constellio.sdk.tests.TestUtils.asList;
import static com.constellio.sdk.tests.TestUtils.asMap;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import com.constellio.model.entities.Language;
import com.constellio.sdk.tests.ConstellioTest;
public class MetadataSchemaTypeTest extends ConstellioTest {
@Mock MetadataSchema defaultSchema;
@Mock MetadataSchema customSchema1;
@Mock MetadataSchema customSchema2;
@Mock Metadata defaultSchemaAutomaticMetadata;
@Mock Metadata customSchema1AutomaticMetadataWithInheritance;
@Mock Metadata customSchema2AutomaticMetadataWithInheritance;
@Mock Metadata customSchema2AutomaticMetadataWithoutInheritance;
MetadataSchemaType type;
@Before
public void setUp()
throws Exception {
when(customSchema1AutomaticMetadataWithInheritance.getInheritance()).thenReturn(defaultSchemaAutomaticMetadata);
when(customSchema2AutomaticMetadataWithInheritance.getInheritance()).thenReturn(defaultSchemaAutomaticMetadata);
type = new MetadataSchemaType(aString(), aString(), asMap(Language.French, "label"), asList(customSchema1, customSchema2),
defaultSchema, false, true, true, false);
}
@Test
public void whenGetAutomaticMetadataThenReturnAllDefaultMetadataAndAllCustomSchemasMetadatasWithoutInheritance()
throws Exception {
when(defaultSchema.getAutomaticMetadatas()).thenReturn(asList(defaultSchemaAutomaticMetadata));
when(customSchema1.getAutomaticMetadatas()).thenReturn(asList(customSchema1AutomaticMetadataWithInheritance));
when(customSchema2.getAutomaticMetadatas()).thenReturn(
asList(customSchema2AutomaticMetadataWithInheritance, customSchema2AutomaticMetadataWithoutInheritance));
List<Metadata> automaticMetadatas = type.getAutomaticMetadatas();
assertThat(automaticMetadatas).containsOnly(defaultSchemaAutomaticMetadata,
customSchema2AutomaticMetadataWithoutInheritance);
}
@Test
public void whenGetAllSchemasThenReturnDefaultAndAllCustomSchemas()
throws Exception {
assertThat(type.getAllSchemas()).containsOnly(customSchema1, customSchema2, defaultSchema);
}
}