package com.constellio.app.ui.pages.management.taxonomy;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import com.constellio.app.modules.rm.RMTestRecords;
import com.constellio.app.modules.rm.wrappers.Category;
import com.constellio.model.entities.schemas.Schemas;
import com.constellio.model.services.records.RecordServices;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.annotations.UiTest;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver;
@UiTest
public class TaxonomyManagementViewAcceptTest extends ConstellioTest {
RecordServices recordServices;
RMTestRecords records = new RMTestRecords(zeCollection);
ConstellioWebDriver driver;
TaxonomyManagementWebElement taxoManagementWebElement;
@Before
public void setUp()
throws Exception {
prepareSystem(
withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest(records)
.withFoldersAndContainersOfEveryStatus().withEvents()
);
inCollection(zeCollection).setCollectionTitleTo("Collection de test");
recordServices = getModelLayerFactory().newRecordServices();
driver = newWebDriver(loggedAsUserInCollection(chuckNorris, zeCollection));
taxoManagementWebElement = new TaxonomyManagementWebElement(driver);
}
@Test
public void whenAddingAndDisplayingTaxonomyConceptsThenRightInformationAddedAndDisplayed()
throws Exception {
// TODO Add test for new information in table for Mantis C01
taxoManagementWebElement.navigateToClassificationPlan();
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("X", "Z");
taxoManagementWebElement.display("X");
assertThat(taxoManagementWebElement.getCurrentConceptCode()).isEqualTo("X");
assertThat(taxoManagementWebElement.getCurrentConceptTitle()).isEqualTo("Xe category");
assertThat(taxoManagementWebElement.getCurrentConceptCreationDate()).isEqualTo(
records.getCategory_X().getCreatedOn().toString("yyyy-MM-dd HH:mm:ss"));
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("X100", "X13");
taxoManagementWebElement.add()
.setValue(Category.DEFAULT_SCHEMA + "_" + Category.CODE, "NEW")
.setValue(Category.DEFAULT_SCHEMA + "_" + Schemas.TITLE.getLocalCode(), "New category")
.clickSaveButtonAndWaitForPageReload();
assertThat(taxoManagementWebElement.getCurrentConceptCode()).isEqualTo("X");
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("X100", "X13", "NEW");
taxoManagementWebElement.display("NEW");
assertThat(taxoManagementWebElement.getCurrentConceptCode()).isEqualTo("NEW");
assertThat(taxoManagementWebElement.getCurrentConceptTitle()).isEqualTo("New category");
taxoManagementWebElement.add()
.setValue(Category.DEFAULT_SCHEMA + "_" + Category.CODE, "NEWER")
.clickCancelButtonAndWaitForPageReload();
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).isEmpty();
}
@Test
public void whenDisplayingAdministativeUnitThenRightInformationDisplayed()
throws Exception {
taxoManagementWebElement.navigateToAdministrativeUnit();
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("10", "20", "30");
taxoManagementWebElement.display("10");
assertThat(taxoManagementWebElement.getCurrentAdministrativeUnitCode()).isEqualTo("10");
assertThat(taxoManagementWebElement.getCurrentAdministrativeUnitTitle()).isEqualTo("Unité 10");
assertThat(taxoManagementWebElement.getCurrentAdministrativeUnitCreationDate()).isEqualTo(
records.getUnit10().getCreatedOn().toString("yyyy-MM-dd HH:mm:ss"));
assertThat(taxoManagementWebElement.getElementByClassName("display-value-count-folder").getText())
.isEqualTo("0");
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("11", "12", "10A");
taxoManagementWebElement.display("10A");
assertThat(taxoManagementWebElement.getElementByClassName("display-value-count-folder").getText())
.isEqualTo("63");
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).isEmpty();
}
@Test
public void whenDisplayingClassificationPlanThenRightInformationDisplayed()
throws Exception {
taxoManagementWebElement.navigateToClassificationPlan();
taxoManagementWebElement.display("X");
assertThat(taxoManagementWebElement.getCurrentConceptCode()).isEqualTo("X");
assertThat(taxoManagementWebElement.getCurrentConceptTitle()).isEqualTo("Xe category");
assertThat(taxoManagementWebElement.getCurrentConceptCreationDate()).isEqualTo(
records.getCategory_X().getCreatedOn().toString("yyyy-MM-dd HH:mm:ss"));
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("X100", "X13");
assertThat(taxoManagementWebElement.getElementByClassName("display-value-count-folder").getText())
.isEqualTo("0");
}
@Test
public void whenDisplayingAdministativeUnitFoldersThenListOfFoldersDisplayed()
throws Exception {
taxoManagementWebElement.navigateToAdministrativeUnit();
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("10", "20", "30");
taxoManagementWebElement.display("30");
assertThat(taxoManagementWebElement.getConceptsCodesFromTable()).containsOnly("30C");
taxoManagementWebElement.display("30C");
assertThat(taxoManagementWebElement.getElementByClassName("display-value-count-folder").getText())
.isEqualTo("21");
taxoManagementWebElement.getTabByClassName("folderTab").click();
Thread.sleep(1000);
taxoManagementWebElement.waitUntilFoldersTableExist();
assertThat(taxoManagementWebElement.getRowsFoldersFromFoldersTable().get(1).getText()).contains("Asperge");
}
}