Skip to content

Commit

Permalink
Hexagonal pattern: Introduce lottery utils class
Browse files Browse the repository at this point in the history
  • Loading branch information
iluwatar committed Sep 17, 2016
1 parent 6aa58e8 commit b030cd4
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public LotteryNumbers performLottery() {
LotteryNumbers numbers = LotteryNumbers.createRandom();
Map<LotteryTicketId, LotteryTicket> tickets = getAllSubmittedTickets();
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)) {
boolean transferred = wireTransfers.transferFunds(LotteryConstants.PRIZE_AMOUNT,
LotteryConstants.SERVICE_BANK_ACCOUNT, tickets.get(id).getPlayerDetails().getBankAccount());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,6 @@ public Optional<LotteryTicketId> submitTicket(LotteryTicket ticket) {
* Check if lottery ticket has won
*/
public LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers) {
return new LotteryTicketChecker(repository).checkTicketForPrize(id, winningNumbers);
return LotteryUtils.checkTicketForPrize(repository, id, winningNumbers);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,18 @@
import java.util.Optional;

/**
* Lottery ticket checker
* Lottery utilities
*/
public class LotteryTicketChecker {
public class LotteryUtils {

private final LotteryTicketRepository repository;

public LotteryTicketChecker(LotteryTicketRepository repository) {
this.repository = repository;
private LotteryUtils() {
}

/**
* 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);
if (optional.isPresent()) {
if (optional.get().getNumbers().equals(winningNumbers)) {
Expand Down

0 comments on commit b030cd4

Please sign in to comment.