package com.bookstore; import com.algocrafts.domain.CreditCardType; import com.algocrafts.pages.Page; import com.bookstore.domain.CreditCard; import java.time.Month; import static com.algocrafts.converters.StringToInt.PARSE_INT; import static com.bookstore.BookStoreId.*; public class CreditCardForm { private Page page; public CreditCardForm(Page page) { this.page = page; } public void setCreditCard(CreditCard card) { page.put(CARD_CVV, card.cardCvv); page.put(CARD_NUMBER, card.cardNumber); page.select(CARD_TYPE, card.cardType); page.select(CARD_EXP_MONTH, card.expirationMonth); page.select(CARD_EXP_YEAR, card.expirationYear); } public CreditCard getCreditCard() { return new CreditCard( page.get(CARD_TYPE, CreditCardType::fromString), page.get(CARD_NUMBER), page.get(CARD_CVV), page.get(CARD_EXP_MONTH, Month::valueOf), page.get(CARD_EXP_YEAR, PARSE_INT)); } }