package fi.otavanopisto.muikku.ui.base.course.journal; import static fi.otavanopisto.muikku.mock.PyramusMock.mocker; import org.apache.commons.lang3.math.NumberUtils; import java.time.OffsetDateTime; import java.time.ZoneOffset; import org.junit.Test; import fi.otavanopisto.muikku.TestUtilities; import fi.otavanopisto.muikku.atests.Workspace; import fi.otavanopisto.muikku.mock.PyramusMock.Builder; import fi.otavanopisto.muikku.mock.model.MockCourseStudent; import fi.otavanopisto.muikku.mock.model.MockStaffMember; import fi.otavanopisto.muikku.mock.model.MockStudent; import fi.otavanopisto.muikku.ui.AbstractUITest; import fi.otavanopisto.pyramus.rest.model.Sex; import fi.otavanopisto.pyramus.rest.model.UserRole; public class CourseJournalPageTestsBase extends AbstractUITest { @Test public void courseJournalToolsForTeacher() 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 workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE); try { navigate(String.format("/workspace/%s/journal", workspace.getUrlName()), true); waitForPresent(".workspace-journal-content-wrapper"); assertVisible(".workspace-journal-teacher-tools-container"); } finally { deleteWorkspace(workspace.getId()); } } finally { mockBuilder.wiremockReset(); } } @Test public void courseJournalNewEntryForStudent() throws Exception { MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "User", UserRole.ADMINISTRATOR, "121212-1234", "admin@example.com", Sex.MALE); MockStudent student = new MockStudent(2l, 2l, "Student", "Tester", "student@example.com", 1l, OffsetDateTime.of(1990, 2, 2, 0, 0, 0, 0, ZoneOffset.UTC), "121212-1212", Sex.FEMALE, TestUtilities.toDate(2012, 1, 1), TestUtilities.getNextYear()); Builder mockBuilder = mocker(); try{ mockBuilder.addStaffMember(admin).addStudent(student).mockLogin(admin).build(); login(); Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE); Long courseId = NumberUtils.createLong(workspace.getIdentifier()); MockCourseStudent courseStudent = new MockCourseStudent(1l, courseId, student.getId()); mockBuilder.addCourseStudent(courseId, courseStudent).build(); logout(); mockBuilder.mockLogin(student).build(); login(); try { navigate(String.format("/workspace/%s/journal", workspace.getUrlName()), true); waitForPresent(".workspace-journal-content-wrapper"); assertVisible(".workspace-journal-new-entry-button"); } finally { deleteWorkspace(workspace.getId()); } } finally { mockBuilder.wiremockReset(); } } @Test public void courseJournalEntryAdded() throws Exception { MockStaffMember admin = new MockStaffMember(1l, 1l, "Admin", "User", UserRole.ADMINISTRATOR, "121212-1234", "admin@example.com", Sex.MALE); MockStudent student = new MockStudent(2l, 2l, "Student", "Tester", "student@example.com", 1l, OffsetDateTime.of(1990, 2, 2, 0, 0, 0, 0, ZoneOffset.UTC), "121212-1212", Sex.FEMALE, TestUtilities.toDate(2012, 1, 1), TestUtilities.getNextYear()); Builder mockBuilder = mocker(); try{ mockBuilder.addStaffMember(admin).addStudent(student).mockLogin(admin).build(); login(); Workspace workspace = createWorkspace("testcourse", "test course for testing", "1", Boolean.TRUE); Long courseId = NumberUtils.createLong(workspace.getIdentifier()); MockCourseStudent courseStudent = new MockCourseStudent(1l, courseId, student.getId()); mockBuilder.addCourseStudent(courseId, courseStudent).build(); logout(); mockBuilder.mockLogin(student).build(); login(); try { navigate(String.format("/workspace/%s/journal", workspace.getUrlName()), true); click(".workspace-journal-new-entry-button"); addTextToCKEditor("content"); sendKeys(".mf-textfield-subject", "title"); click("#socialNavigation.sn-container .jo-message-create .mf-toolbar input[name=\"send\"]"); waitForPresent("#content"); waitForPresent(".workspace-journal-title"); assertText(".workspace-journal-title", "title"); waitForPresent(".workspace-journal-content>p"); assertText(".workspace-journal-content>p", "content"); } finally { deleteWorkspace(workspace.getId()); } } finally { mockBuilder.wiremockReset(); } } }