package io.codearte.jfairy.producer.payment;
import com.google.inject.Provider;
import io.codearte.jfairy.data.DataMaster;
import io.codearte.jfairy.producer.DateProducer;
import org.joda.time.DateTime;
import org.joda.time.Period;
import javax.inject.Inject;
public class CreditCardProvider implements Provider<CreditCard> {
private static final Period DEFAULT_VALIDITY = Period.months(36);
private static final String DATA_KEY = "cardVendors";
private final DataMaster dataMaster;
private final DateProducer dateProducer;
@Inject
public CreditCardProvider(DataMaster dataMaster, DateProducer dateProducer) {
this.dataMaster = dataMaster;
this.dateProducer = dateProducer;
}
@Override
public CreditCard get() {
String cardVendor = dataMaster.getRandomValue(DATA_KEY);
DateTime expiryDate = dateProducer.randomDateBetweenNowAndFuturePeriod(DEFAULT_VALIDITY);
return new CreditCard(cardVendor, expiryDate);
}
}