package ru.kovbasa.tests; import com.google.inject.Inject; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.Test; import ru.kovbasa.config.GuiceExtension; import ru.kovbasa.pages.CatalogPage; import ru.kovbasa.pages.CourseItem; import ru.kovbasa.pages.CoursePage; import java.time.LocalDate; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @ExtendWith(GuiceExtension.class) public class CoursesDatesTest { @Inject private CatalogPage catalog; @Test void earliestCourseHasCorrectTitleAndDate() { catalog.open(); final List earliestCourses = catalog.findEarliestCourses(); for (CourseItem course : earliestCourses) { final CoursePage page = catalog.openCourse(course); final String pageTitle = page.getCourseTitle(); assertTrue( pageTitle.toLowerCase().contains(course.title().toLowerCase()), "Earliest course title on page should contain title from catalog: " + course.title() ); final LocalDate pageDate = page.getCourseStartDate(course.startDate()); assertEquals( course.startDate(), pageDate, "Earliest course start date should match for course: " + course.title() ); catalog.open(); } } @Test void latestCourseHasCorrectTitleAndDate() { catalog.open(); final List latestCourses = catalog.findLatestCourses(); for (CourseItem course : latestCourses) { final CoursePage page = catalog.openCourse(course); final String pageTitle = page.getCourseTitle(); assertTrue( pageTitle.toLowerCase().contains(course.title().toLowerCase()), "Latest course title on page should contain title from catalog: " + course.title() ); final LocalDate pageDate = page.getCourseStartDate(course.startDate()); assertEquals( course.startDate(), pageDate, "Latest course start date should match for course: " + course.title() ); catalog.open(); } } }