Hexagonal pattern: Introduce lottery utils class

This commit is contained in:
Ilkka Seppälä 2016-09-17 09:20:33 +03:00
parent 6aa58e8ae6
commit b030cd4eba
3 changed files with 8 additions and 10 deletions

View File

@ -65,7 +65,7 @@ public class LotteryAdministration {
LotteryNumbers numbers = LotteryNumbers.createRandom(); LotteryNumbers numbers = LotteryNumbers.createRandom();
Map<LotteryTicketId, LotteryTicket> tickets = getAllSubmittedTickets(); Map<LotteryTicketId, LotteryTicket> tickets = getAllSubmittedTickets();
for (LotteryTicketId id : tickets.keySet()) { for (LotteryTicketId id : tickets.keySet()) {
LotteryTicketCheckResult result = new LotteryTicketChecker(repository).checkTicketForPrize(id, numbers); LotteryTicketCheckResult result = LotteryUtils.checkTicketForPrize(repository, id, numbers);
if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) { if (result.getResult().equals(LotteryTicketCheckResult.CheckResult.WIN_PRIZE)) {
boolean transferred = wireTransfers.transferFunds(LotteryConstants.PRIZE_AMOUNT, boolean transferred = wireTransfers.transferFunds(LotteryConstants.PRIZE_AMOUNT,
LotteryConstants.SERVICE_BANK_ACCOUNT, tickets.get(id).getPlayerDetails().getBankAccount()); LotteryConstants.SERVICE_BANK_ACCOUNT, tickets.get(id).getPlayerDetails().getBankAccount());

View File

@ -72,6 +72,6 @@ public class LotteryService {
* Check if lottery ticket has won * Check if lottery ticket has won
*/ */
public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) { public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) {
return new LotteryTicketChecker(repository).checkTicketForPrize(id, winningNumbers); return LotteryUtils.checkTicketForPrize(repository, id, winningNumbers);
} }
} }

View File

@ -27,20 +27,18 @@ import com.iluwatar.hexagonal.database.LotteryTicketRepository;
import java.util.Optional; import java.util.Optional;
/** /**
* Lottery ticket checker * Lottery utilities
*/ */
public class LotteryTicketChecker { public class LotteryUtils {
private final LotteryTicketRepository repository; private LotteryUtils() {
public LotteryTicketChecker(LotteryTicketRepository repository) {
this.repository = repository;
} }
/** /**
* Check if lottery ticket has won * Checks if lottery ticket has won
*/ */
public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) { public static LotteryTicketCheckResult checkTicketForPrize(LotteryTicketRepository repository, LotteryTicketId id,
LotteryNumbers winningNumbers) {
Optional<LotteryTicket> optional = repository.findById(id); Optional<LotteryTicket> optional = repository.findById(id);
if (optional.isPresent()) { if (optional.isPresent()) {
if (optional.get().getNumbers().equals(winningNumbers)) { if (optional.get().getNumbers().equals(winningNumbers)) {