package com.constellio.app.ui.acceptation.management.schemas.display.group; 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.ui.tools.RecordContainerWebElement; import com.constellio.app.ui.tools.RecordContainerWebElementRuntimeException.RecordContainerWebElementRuntimeException_NoSuchRowWithValueInColumn; import com.constellio.model.entities.schemas.MetadataSchemaType; import com.constellio.model.services.schemas.MetadataSchemasManager; 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 ListMetadataGroupSchemaViewAcceptanceTest extends ConstellioTest { MetadataSchemasManager schemasManager; RMTestRecords records = new RMTestRecords(zeCollection); ConstellioWebDriver driver; MetadataGroupSchemaPage page; MetadataSchemaType type; @Before public void setUp() throws Exception { prepareSystem( withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest(records) ); schemasManager = getModelLayerFactory().getMetadataSchemasManager(); driver = newWebDriver(loggedAsUserInCollection(admin, zeCollection)); type = schemasManager.getSchemaTypes(zeCollection).getSchemaTypes().get(0); page = new MetadataGroupSchemaPage(driver).navigateToPage(type.getCode()); } @Test public void givenBaseConfigurationThenDisplayNoGroup() throws Exception { RecordContainerWebElement typeTable = page.getGroupTable(); assertThat(typeTable.countRows()).isEqualTo(1); assertThat(page.getGroupWithName("Métadonnées")).isNotNull(); } @Test public void givenBaseConfigurationThenAddingGroupThenDisplayGroup() throws Exception { page.addGroupWithName("zeGroup"); page.addGroupWithName("zeOtherGroup"); RecordContainerWebElement typeTable = page.getGroupTable(); assertThat(typeTable.countRows()).isEqualTo(3); assertThat(page.getGroupWithName("Métadonnées")).isNotNull(); assertThat(page.getGroupWithName("zeGroup")).isNotNull(); assertThat(page.getGroupWithName("zeOtherGroup")).isNotNull(); } @Test public void givenBaseConfigurationThenAddingTwoGroupWithTheSameNameThenOnlyOneAdded() throws Exception { page.addGroupWithName("zeGroup"); page.addGroupWithName("zeGroup"); RecordContainerWebElement typeTable = page.getGroupTable(); assertThat(typeTable.countRows()).isEqualTo(2); assertThat(page.getGroupWithName("Métadonnées")).isNotNull(); assertThat(page.getGroupWithName("zeGroup")).isNotNull(); } @Test public void givenBaseConfigurationWhenRemoveLastGroupThenNotAble() throws Exception { RecordContainerWebElement typeTable = page.getGroupTable(); page.removeGroupWithName("Métadonnées"); assertThat(typeTable.countRows()).isEqualTo(1); assertThat(page.getGroupWithName("Métadonnées")).isNotNull(); } @Test(expected = RecordContainerWebElementRuntimeException_NoSuchRowWithValueInColumn.class) public void givenBaseConfigurationWithGroupThenDeleteThenDisplayGoodGroup() throws Exception { page.addGroupWithName("zeGroup"); RecordContainerWebElement typeTable = page.getGroupTable(); assertThat(typeTable.countRows()).isEqualTo(2); page.removeGroupWithName("zeGroup"); //exception thrown here if it's correctly removed page.getGroupWithName("zeGroup"); } @Test public void givenBaseConfigurationWhenAddingNoNameGroupThenNotAdded() throws Exception { page.addGroupWithName(""); RecordContainerWebElement typeTable = page.getGroupTable(); assertThat(typeTable.countRows()).isEqualTo(1); assertThat(page.getGroupWithName("Métadonnées")).isNotNull(); } }