package fi.otavanopisto.muikku.ui.base.course.picker; import static fi.otavanopisto.muikku.mock.PyramusMock.mocker; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.openqa.selenium.By; import com.github.tomakehurst.wiremock.client.WireMock; import fi.otavanopisto.muikku.atests.Workspace; import fi.otavanopisto.muikku.mock.PyramusMock.Builder; import fi.otavanopisto.muikku.mock.model.MockStaffMember; import fi.otavanopisto.muikku.ui.AbstractUITest; import fi.otavanopisto.muikku.ui.PyramusMocks; import fi.otavanopisto.pyramus.rest.model.Sex; import fi.otavanopisto.pyramus.rest.model.UserRole; public class CoursePickerTestsBase extends AbstractUITest { @Test public void coursePickerExistsTest() throws Exception { loginAdmin(); Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE); PyramusMocks.personsPyramusMocks(); try { getWebDriver().get(getAppUrl(true) + "/coursepicker"); waitForElementToBePresent(By.id("coursesList")); boolean elementExists = getWebDriver().findElements(By.id("coursesList")).size() > 0; WireMock.reset(); assertTrue(elementExists); } finally { deleteWorkspace(workspace.getId()); } } @Test public void coursePickerLoadMoreTest() throws Exception { MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "User", UserRole.ADMINISTRATOR, "121212-1234", "admin@example.com", Sex.MALE); Builder mockBuilder = mocker(); try{ mockBuilder.addStaffMember(admin).mockLogin(admin).build(); login(); List<Workspace> workspaces = new ArrayList<>(); for(Long i = (long) 0; i < 30; i++) workspaces.add(createWorkspace("testcourse", "test course for testing " + i.toString(), i.toString(), Boolean.TRUE)); try { getWebDriver().get(getAppUrl(true) + "/coursepicker"); waitForMoreThanSize(".cp-course", 24); assertCount(".cp-course", 25); waitForPresent(".mf-paging-tool"); scrollIntoView(".mf-paging-tool"); waitAndClick(".mf-paging-tool"); waitForMoreThanSize(".cp-course", 25); assertCount(".cp-course", 30); } finally { for(Workspace w : workspaces) { deleteWorkspace(w.getId()); } } }finally{ mockBuilder.wiremockReset(); } } @Test public void coursePickerSearchTest() throws Exception { MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "User", UserRole.ADMINISTRATOR, "121212-1234", "admin@example.com", Sex.MALE); Builder mockBuilder = mocker(); try{ mockBuilder.addStaffMember(admin).mockLogin(admin).build(); login(); Workspace workspace1 = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE); Workspace workspace2 = createWorkspace("wiener course", "wiener course for testing", "2", Boolean.TRUE); Workspace workspace3 = createWorkspace("potato course", "potato course for testing", "3", Boolean.TRUE); try { navigate("/coursepicker", true); waitForPresent("#coursesList"); waitAndSendKeys(".cp-search-field input.search", "pot"); waitAndSendKeys(".cp-search-field input.search", "ato"); waitUntilElementCount(".cp-course-long-name", 1); waitForPresentAndVisible(".cp-course-long-name"); assertTextIgnoreCase(".cp-course-long-name", "potato course"); } finally { deleteWorkspace(workspace1.getId()); deleteWorkspace(workspace2.getId()); deleteWorkspace(workspace3.getId()); } }finally{ mockBuilder.wiremockReset(); } } }