package com.constellio.app.modules.rm.ui.accept.decommissioning;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import com.constellio.app.modules.rm.RMTestRecords;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.annotations.InDevelopmentTest;
import com.constellio.sdk.tests.annotations.UiTest;
import com.constellio.sdk.tests.selenium.adapters.constellio.ConstellioWebDriver;
@UiTest
public class DecommissioningListViewAcceptTest extends ConstellioTest {
RMTestRecords records = new RMTestRecords(zeCollection);
ConstellioWebDriver driver;
DecommissioningListPage page;
@Before
public void setUp()
throws Exception {
prepareSystem(
withZeCollection().withConstellioRMModule().withAllTestUsers().withRMTest(records)
.withFoldersAndContainersOfEveryStatus()
);
driver = newWebDriver(loggedAsUserInCollection(gandalf, zeCollection));
}
@Test
@InDevelopmentTest
public void openPage() {
giveListNotApprovedAndNotValidated();
waitUntilICloseTheBrowsers();
}
@Test
@Ignore
public void givenListsOfManyStatesThenActionsAreAvailableAccordingToTheListState() {
givenHybridListToClose();
assertThat(page.getEditButton().isEnabled()).isTrue();
assertThat(page.getDeleteButton().isEnabled()).isTrue();
assertThat(page.getProcessButton().isEnabled()).isTrue();
givenAnalogicListToTransfer();
assertThat(page.getEditButton().isEnabled()).isTrue();
assertThat(page.getDeleteButton().isEnabled()).isTrue();
assertThat(page.getProcessButton().isEnabled()).isFalse();
givenAlreadyProcessedList();
assertThat(page.getEditButton().isEnabled()).isFalse();
assertThat(page.getDeleteButton().isEnabled()).isFalse();
assertThat(page.getProcessButton().isEnabled()).isFalse();
givenListRequestedAndNotApproved();
assertThat(page.getApprovalButton().isEnabled()).isTrue();
assertThat(page.getApprovalRequestButton().isEnabled()).isFalse();
assertThat(page.getProcessButton().isEnabled()).isFalse();
givenListRequestedAndApproved();
assertThat(page.getApprovalButton().isEnabled()).isFalse();
assertThat(page.getApprovalRequestButton().isEnabled()).isFalse();
assertThat(page.getProcessButton().isEnabled()).isTrue();
givenListApprovedAndValidated();
assertThat(page.getApprovalRequestButton().isEnabled()).isFalse();
assertThat(page.getApprovalButton().isEnabled()).isFalse();
assertThat(page.getProcessButton().isEnabled()).isTrue();
assertThat(page.getValidationRequestButton().isEnabled()).isFalse();
assertThat(page.getValidationButton().isEnabled()).isFalse();
giveListNotApprovedAndNotValidated();
assertThat(page.getApprovalRequestButton().isEnabled()).isFalse();
assertThat(page.getApprovalButton().isEnabled()).isFalse();
assertThat(page.getProcessButton().isEnabled()).isFalse();
assertThat(page.getValidationRequestButton().isEnabled()).isFalse();
assertThat(page.getValidationButton().isEnabled()).isTrue();
}
private void givenHybridListToClose() {
page = new DecommissioningListPage(driver, records.list_03).navigateToPage();
}
private void givenAnalogicListToTransfer() {
page = new DecommissioningListPage(driver, records.list_04).navigateToPage();
}
public void givenAlreadyProcessedList() {
page = new DecommissioningListPage(driver, records.list_11).navigateToPage();
}
public void givenListRequestedAndApproved() {
page = new DecommissioningListPage(driver, records.list_03).navigateToPage();
}
public void givenListRequestedAndNotApproved() {
page = new DecommissioningListPage(driver, records.list_23).navigateToPage();
}
public void givenListApprovedAndValidated() {
page = new DecommissioningListPage(driver, records.list_24).navigateToPage();
}
public void giveListNotApprovedAndNotValidated() {
page = new DecommissioningListPage(driver, records.list_25).navigateToPage();
}
}