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 project.ProjectDashboard; import project.ProjectPage; import project.ProjectsPage; import ru.ulstu.NgTrackerApplication; import ru.ulstu.configuration.ApplicationProperties; 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 ProjectTest extends TestTemplate { private final Map> navigationHolder = ImmutableMap.of( new ProjectPage(), Arrays.asList("ПРОЕКТЫ", "/projects/projects"), new ProjectsPage(), Arrays.asList("РЕДАКТИРОВАНИЕ ПРОЕКТА", "/projects/project?id=0"), new ProjectDashboard(), Arrays.asList("ПРОЕКТЫ", "/projects/dashboard") ); @Autowired private ApplicationProperties applicationProperties; @Test public void testACreateNewProject() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 1); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(page.getKey()); ProjectPage projectPage = (ProjectPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 0).getKey()); String name = "Project " + (new Date()).getTime(); String date = "01.01.2019"; Integer deadNum = projectPage.getDeadlineCount(); projectPage.setName(name); projectPage.clickAddDeadline(); projectPage.addDeadlineDate(date, deadNum); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testBChangeNameAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = "Project " + (new Date()).getTime(); projectPage.clearName(); projectPage.setName(name); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testCChangeDeadlineAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); String date = "01.01.2019"; Integer deadNum = projectPage.getDeadlineCount(); projectPage.addDeadlineDate(date, deadNum); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testDSetStatusAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); projectPage.setStatus(); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testEAddDescriptionAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); String description = "Description " + (new Date()).getTime(); projectPage.addDescription(description); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testFAddLinkAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); String link = "Link " + (new Date()).getTime(); projectPage.addLink(link); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testGAddDeadlineDescriptionAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); String deadDesc = "Description " + (new Date()).getTime(); projectPage.addDeadlineDescription(deadDesc); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testHSetDeadlineCompletionAndSave() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); projectPage.setDeadlineCompletion(); projectPage.clickSave(); Assert.assertTrue(projectsPage.checkNameInList(name)); } @Test public void testIDeleteDeadline() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); projectPage.clickDeleteDeadline(); Assert.assertTrue(projectPage.getDeadlineCount() == 0); } @Test public void testJDeleteProject() { Map.Entry> page = Iterables.get(navigationHolder.entrySet(), 0); getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1)); ProjectPage projectPage = (ProjectPage) getContext().initPage(page.getKey()); ProjectsPage projectsPage = (ProjectsPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey()); projectsPage.getFirstProject(); String name = projectPage.getName(); projectPage.clickSave(); projectsPage.deleteFirst(); projectsPage.clickConfirm(); Assert.assertFalse(projectsPage.checkNameInList(name)); } }