import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import core.PageObject; import core.TestTemplate; import org.junit.Assert; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import ru.ulstu.NgTrackerApplication; import ru.ulstu.configuration.ApplicationProperties; import students.TaskPage; import students.TasksDashboardPage; import students.TasksPage; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; @RunWith(SpringRunner.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @SpringBootTest(classes = NgTrackerApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) public class StudentTaskTest extends TestTemplate { private final Map> navigationHolder = ImmutableMap.of( new TasksPage(), Arrays.asList("Список задач", "/students/tasks"), new TasksDashboardPage(), Arrays.asList("Панель управления", "/students/dashboard"), new TaskPage(), Arrays.asList("Создать задачу", "/students/task?id=0") ); private final String tag = "ATag"; @Autowired private ApplicationProperties applicationProperties; @Test public void testACreateTask() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 2); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TaskPage taskPage = (TaskPage) getContext().initPage(page.getKey()); TasksPage tasksPage = (TasksPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 0).getKey()); String taskName = "Task " + (new Date()).getTime(); taskPage.setName(taskName); taskPage.addDeadlineDate("01.01.2020", 0); taskPage.addDeadlineDescription("Description", 0); taskPage.save(); Assert.assertTrue(tasksPage.findTask(taskName)); } @Test public void testBEditTaskName() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); TaskPage taskPage = (TaskPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 2).getKey()); String taskNewName = "Task " + (new Date()).getTime(); tasksPage.goToFirstTask(); taskPage.removeName(); taskPage.setName(taskNewName); taskPage.save(); Assert.assertTrue(tasksPage.findTask(taskNewName)); } @Test public void testCDeleteTask() throws InterruptedException { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); Integer size = tasksPage.getTasks().size(); tasksPage.deleteFirstTask(); Thread.sleep(3000); tasksPage.submit(); Assert.assertEquals(size - 1, tasksPage.getTasks().size()); } @Test public void testDAddDeadline() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); TaskPage taskPage = (TaskPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 2).getKey()); tasksPage.goToFirstTask(); String taskId = taskPage.getId(); Integer deadnum = taskPage.getDeadNum(); String descr = "Description"; String date = "06.06.2019"; String dateValue = "2019-06-06"; taskPage.clickAddDeadline(); taskPage.addDeadlineDescription(descr, deadnum); taskPage.addDeadlineDate(date, deadnum); taskPage.save(); getContext().goTo(applicationProperties.getBaseUrl() + String.format("/students/task?id=%s", taskId)); Assert.assertTrue(taskPage.hasDeadline(descr, dateValue)); } @Test public void testEEditDeadline() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); TaskPage taskPage = (TaskPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 2).getKey()); tasksPage.goToFirstTask(); String taskId = taskPage.getId(); String descr = "DescriptionTwo"; String date = "12.12.2019"; String dateValue = "2019-12-12"; taskPage.clearDeadlineDate(0); taskPage.clearDeadlineDescription(0); taskPage.addDeadlineDescription(descr, 0); taskPage.addDeadlineDate(date, 0); taskPage.save(); getContext().goTo(applicationProperties.getBaseUrl() + String.format("/students/task?id=%s", taskId)); Assert.assertTrue(taskPage.hasDeadline(descr, dateValue)); } @Test public void testFDeleteDeadline() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); TaskPage taskPage = (TaskPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 2).getKey()); tasksPage.goToFirstTask(); String taskId = taskPage.getId(); Integer deadNum = taskPage.getDeadNum(); taskPage.deleteDeadline(); taskPage.save(); getContext().goTo(applicationProperties.getBaseUrl() + String.format("/students/task?id=%s", taskId)); Assert.assertEquals(deadNum - 1, (int) taskPage.getDeadNum()); } @Test public void testGCreateTaskWithTag() throws InterruptedException { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 2); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TaskPage taskPage = (TaskPage) getContext().initPage(page.getKey()); TasksPage tasksPage = (TasksPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 0).getKey()); String taskName = "Task " + (new Date()).getTime(); taskPage.setName(taskName); taskPage.setTag(tag); Thread.sleep(1000); taskPage.addDeadlineDate("01.01.2020", 0); taskPage.addDeadlineDescription("Description", 0); taskPage.save(); Assert.assertTrue(tasksPage.findTaskByTag(taskName, tag)); } @Test public void testHFindTagInFilter() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); Assert.assertTrue(tasksPage.findTag(tag)); } @Test public void testIFilterByTag() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); tasksPage.selectTag(tag); Assert.assertTrue(tasksPage.findTasksByTag(tag)); } @Test public void testJFilterByStatus() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); TasksPage tasksPage = (TasksPage) getContext().initPage(page.getKey()); tasksPage.selectStatus(); Assert.assertTrue(tasksPage.findAllStatus()); } }