package com.constellio.model.services.taxonomies; import static org.assertj.core.api.Assertions.assertThat; import java.util.ArrayList; import java.util.List; import org.jdom2.Document; import org.jdom2.Element; import org.junit.Before; import org.junit.Test; import com.constellio.model.entities.Taxonomy; import com.constellio.sdk.tests.ConstellioTest; public class TaxonomiesReaderTest extends ConstellioTest { Document document; TaxonomiesWriter writer; TaxonomiesReader reader; Element taxonomiesElement; Taxonomy taxonomy1; Taxonomy taxonomy2; Taxonomy taxonomy3; @Before public void setup() throws Exception { document = new Document(); writer = new TaxonomiesWriter(document); writer.createEmptyTaxonomy(); taxonomy1 = newTaxonomy(1); taxonomy2 = newTaxonomy(2); taxonomy3 = newTaxonomy(3); writer.addTaxonmy(taxonomy1); writer.addTaxonmy(taxonomy2); writer.addTaxonmy(taxonomy3); reader = new TaxonomiesReader(document); } @Test public void givenThreeEnablesTaxonomieswhenReadEnablesThenTheyAreReturned() throws Exception { List<Taxonomy> enablesTaxonomies = reader.readEnables(); taxonomiesElement = document.getRootElement(); assertThat(enablesTaxonomies).hasSize(3); assertThat(enablesTaxonomies.get(0).getCode()).isEqualTo(taxonomy1.getCode()); assertThat(enablesTaxonomies.get(1).getCode()).isEqualTo(taxonomy2.getCode()); assertThat(enablesTaxonomies.get(2).getCode()).isEqualTo(taxonomy3.getCode()); } @Test public void givenNoDisablesTaxonomiesWhenReadDisablesThenEmptyListIsReturned() throws Exception { List<Taxonomy> disablesTaxonomies = reader.readDisables(); taxonomiesElement = document.getRootElement(); assertThat(disablesTaxonomies).isEmpty(); } @Test public void givenTwoDisablesTaxonomiesWhenReadDisablesThenTheyAreReturned() throws Exception { writer.disable("code1"); writer.disable("code3"); reader = new TaxonomiesReader(document); List<Taxonomy> disablesTaxonomies = reader.readDisables(); taxonomiesElement = document.getRootElement(); assertThat(disablesTaxonomies).hasSize(2); assertThat(disablesTaxonomies.get(0).getCode()).isEqualTo(taxonomy1.getCode()); assertThat(disablesTaxonomies.get(1).getCode()).isEqualTo(taxonomy3.getCode()); } private Taxonomy newTaxonomy(int id) { ArrayList<String> taxonomySchemaTypes = new ArrayList<>(); taxonomySchemaTypes.add("schemaType1" + id); taxonomySchemaTypes.add("schemaType2" + id); taxonomySchemaTypes.add("schemaType3" + id); taxonomySchemaTypes.add("schemaType4" + id); Taxonomy taxonomy = Taxonomy.createPublic("code" + id, "taxo" + id, "zeCollection", taxonomySchemaTypes); return taxonomy; } }