Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions hexagonal/src/main/java/com/iluwatar/hexagonal/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,14 @@ public static void main(String[] args) {
Injector injector = Guice.createInjector(new LotteryTestingModule());

// start new lottery round
LotteryAdministration administartion = injector.getInstance(LotteryAdministration.class);
administartion.resetLottery();
LotteryAdministration administration = injector.getInstance(LotteryAdministration.class);
administration.resetLottery();

// submit some lottery tickets
LotteryService service = injector.getInstance(LotteryService.class);
SampleData.submitTickets(service, 20);

// perform lottery
administartion.performLottery();
administration.performLottery();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class InMemoryBank implements WireTransfers {
private static Map<String, Integer> accounts = new HashMap<>();

static {
accounts.put(LotteryConstants.SERVICE_BANK_ACCOUNT, LotteryConstants.SERVICE_BANK_ACCOUNT_SALDO);
accounts.put(LotteryConstants.SERVICE_BANK_ACCOUNT, LotteryConstants.SERVICE_BANK_ACCOUNT_BALANCE);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public void setFunds(String bankAccount, int amount) {
@Override
public int getFunds(String bankAccount) {
Document search = new Document("_id", bankAccount);
List<Document> results = accountsCollection.find(search).limit(1).into(new ArrayList<Document>());
List<Document> results = accountsCollection.find(search).limit(1).into(new ArrayList<>());
if (results.size() > 0) {
return results.get(0).getInteger("funds");
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;

/**
* Mongo lottery ticket database
Expand Down Expand Up @@ -129,7 +129,7 @@ public MongoCollection<Document> getCountersCollection() {
@Override
public Optional<LotteryTicket> findById(LotteryTicketId id) {
Document find = new Document("ticketId", id.getId());
List<Document> results = ticketsCollection.find(find).limit(1).into(new ArrayList<Document>());
List<Document> results = ticketsCollection.find(find).limit(1).into(new ArrayList<>());
if (results.size() > 0) {
LotteryTicket lotteryTicket = docToTicket(results.get(0));
return Optional.of(lotteryTicket);
Expand All @@ -153,7 +153,7 @@ public Optional<LotteryTicketId> save(LotteryTicket ticket) {
@Override
public Map<LotteryTicketId, LotteryTicket> findAll() {
Map<LotteryTicketId, LotteryTicket> map = new HashMap<>();
List<Document> docs = ticketsCollection.find(new Document()).into(new ArrayList<Document>());
List<Document> docs = ticketsCollection.find(new Document()).into(new ArrayList<>());
for (Document doc: docs) {
LotteryTicket lotteryTicket = docToTicket(doc);
map.put(lotteryTicket.getId(), lotteryTicket);
Expand All @@ -169,11 +169,9 @@ public void deleteAll() {
private LotteryTicket docToTicket(Document doc) {
PlayerDetails playerDetails = new PlayerDetails(doc.getString("email"), doc.getString("bank"),
doc.getString("phone"));
int[] numArray = Arrays.asList(doc.getString("numbers").split(",")).stream().mapToInt(Integer::parseInt).toArray();
Set<Integer> numbers = new HashSet<>();
for (int num: numArray) {
numbers.add(num);
}
Set<Integer> numbers = Arrays.stream(doc.getString("numbers").split(","))
.map(Integer::parseInt)
.collect(Collectors.toSet());
LotteryNumbers lotteryNumbers = LotteryNumbers.create(numbers);
return new LotteryTicket(new LotteryTicketId(doc.getInteger("ticketId")), playerDetails, lotteryNumbers);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ private LotteryConstants() {
public static final int PRIZE_AMOUNT = 100000;
public static final String SERVICE_BANK_ACCOUNT = "123-123";
public static final int TICKET_PRIZE = 3;
public static final int SERVICE_BANK_ACCOUNT_SALDO = 150000;
public static final int PLAYER_MAX_SALDO = 100;
public static final int SERVICE_BANK_ACCOUNT_BALANCE = 150000;
public static final int PLAYER_MAX_BALANCE = 100;

}
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,7 @@ private void generateRandomNumbers() {
RandomNumberGenerator generator = new RandomNumberGenerator(MIN_NUMBER, MAX_NUMBER);
while (numbers.size() < NUM_NUMBERS) {
int num = generator.nextInt();
if (!numbers.contains(num)) {
numbers.add(num);
}
numbers.add(num);
}
}

Expand Down Expand Up @@ -162,5 +160,5 @@ public boolean equals(Object obj) {
return false;
}
return true;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@ public class SampleData {
PLAYERS.add(new PlayerDetails("[email protected]", "842-404", "+131243252"));
InMemoryBank wireTransfers = new InMemoryBank();
Random random = new Random();
for (int i = 0; i < PLAYERS.size(); i++) {
wireTransfers.setFunds(PLAYERS.get(i).getBankAccount(),
random.nextInt(LotteryConstants.PLAYER_MAX_SALDO));
for (PlayerDetails player : PLAYERS) {
wireTransfers.setFunds(player.getBankAccount(),
random.nextInt(LotteryConstants.PLAYER_MAX_BALANCE));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,7 @@ void testGivenNumbers() {
void testNumbersCantBeModified() {
LotteryNumbers numbers = LotteryNumbers.create(
new HashSet<>(Arrays.asList(1, 2, 3, 4)));
assertThrows(UnsupportedOperationException.class, () -> {
numbers.getNumbers().add(5);
});
assertThrows(UnsupportedOperationException.class, () -> numbers.getNumbers().add(5));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ void testLottery() {
assertNotEquals(CheckResult.TICKET_NOT_SUBMITTED, checkResult.getResult());
if (checkResult.getResult().equals(CheckResult.WIN_PRIZE)) {
assertTrue(checkResult.getPrizeAmount() > 0);
} else if (checkResult.getResult().equals(CheckResult.WIN_PRIZE)) {
} else {
assertEquals(0, checkResult.getPrizeAmount());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import java.util.HashSet;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;

/**
Expand All @@ -39,14 +38,14 @@ class LotteryTicketTest {
@Test
void testEquals() {
PlayerDetails details1 = new PlayerDetails("[email protected]", "1212-121212", "+34332322");
LotteryNumbers numbers1 = LotteryNumbers.create(new HashSet<Integer>(Arrays.asList(1, 2, 3, 4)));
LotteryNumbers numbers1 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4)));
LotteryTicket ticket1 = new LotteryTicket(new LotteryTicketId(), details1, numbers1);
PlayerDetails details2 = new PlayerDetails("[email protected]", "1212-121212", "+34332322");
LotteryNumbers numbers2 = LotteryNumbers.create(new HashSet<Integer>(Arrays.asList(1, 2, 3, 4)));
LotteryNumbers numbers2 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4)));
LotteryTicket ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2);
assertEquals(ticket1, ticket2);
PlayerDetails details3 = new PlayerDetails("[email protected]", "1223-121212", "+49332322");
LotteryNumbers numbers3 = LotteryNumbers.create(new HashSet<Integer>(Arrays.asList(1, 2, 3, 8)));
LotteryNumbers numbers3 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 8)));
LotteryTicket ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3);
assertNotEquals(ticket1, ticket3);
}
Expand Down