package com.bookstore.domain; import com.algocrafts.pages.Page; import com.algocrafts.locators.Locators; import java.util.List; import java.util.stream.Stream; import static com.algocrafts.converters.GetText.TEXT; import static com.algocrafts.locators.Locators.elements; import static com.algocrafts.selectors.TagName.LI; import static com.bookstore.BookStoreId.ERROR_MESSAGES; import static java.util.stream.Collectors.toList; public class ErrorMessages { private final List<String> errorMessages; public ErrorMessages(List<String> errorMessages) { this.errorMessages = errorMessages; } public ErrorMessages(Stream<String> errorMessages) { this(errorMessages.collect(toList())); } public ErrorMessages(Page page) { this(Locators.<Page>element(ERROR_MESSAGES) .andThen(elements(LI)).locate(page).map(TEXT)); } @Override public boolean equals(Object other) { return this == other || (other instanceof ErrorMessages && ((ErrorMessages) other).errorMessages.equals(this.errorMessages) ); } @Override public String toString() { return errorMessages.toString(); } }