Skip to content

Commit 4446e74

Browse files
pmatejkonpathai
authored andcommitted
Hexagonal pattern fixes (iluwatar#814)
* Fixed wrong else condition * Simplified creating Set of numbers * Deleted unused imports * Replaced 'for' loop with 'foreach' one * Replaced explicit type with diamond * Removed unnecesary brackets from lambda * Removed unnecesary contains check before adding element to Set * Fixed typo and changed non-english constant names
1 parent 70f6e54 commit 4446e74

File tree

10 files changed

+23
-30
lines changed

10 files changed

+23
-30
lines changed

hexagonal/src/main/java/com/iluwatar/hexagonal/App.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,14 @@ public static void main(String[] args) {
7070
Injector injector = Guice.createInjector(new LotteryTestingModule());
7171

7272
// start new lottery round
73-
LotteryAdministration administartion = injector.getInstance(LotteryAdministration.class);
74-
administartion.resetLottery();
73+
LotteryAdministration administration = injector.getInstance(LotteryAdministration.class);
74+
administration.resetLottery();
7575

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

8080
// perform lottery
81-
administartion.performLottery();
81+
administration.performLottery();
8282
}
8383
}

hexagonal/src/main/java/com/iluwatar/hexagonal/banking/InMemoryBank.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class InMemoryBank implements WireTransfers {
3737
private static Map<String, Integer> accounts = new HashMap<>();
3838

3939
static {
40-
accounts.put(LotteryConstants.SERVICE_BANK_ACCOUNT, LotteryConstants.SERVICE_BANK_ACCOUNT_SALDO);
40+
accounts.put(LotteryConstants.SERVICE_BANK_ACCOUNT, LotteryConstants.SERVICE_BANK_ACCOUNT_BALANCE);
4141
}
4242

4343
@Override

hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public void setFunds(String bankAccount, int amount) {
111111
@Override
112112
public int getFunds(String bankAccount) {
113113
Document search = new Document("_id", bankAccount);
114-
List<Document> results = accountsCollection.find(search).limit(1).into(new ArrayList<Document>());
114+
List<Document> results = accountsCollection.find(search).limit(1).into(new ArrayList<>());
115115
if (results.size() > 0) {
116116
return results.get(0).getInteger("funds");
117117
} else {

hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@
3434
import java.util.ArrayList;
3535
import java.util.Arrays;
3636
import java.util.HashMap;
37-
import java.util.HashSet;
3837
import java.util.List;
3938
import java.util.Map;
4039
import java.util.Optional;
4140
import java.util.Set;
41+
import java.util.stream.Collectors;
4242

4343
/**
4444
* Mongo lottery ticket database
@@ -129,7 +129,7 @@ public MongoCollection<Document> getCountersCollection() {
129129
@Override
130130
public Optional<LotteryTicket> findById(LotteryTicketId id) {
131131
Document find = new Document("ticketId", id.getId());
132-
List<Document> results = ticketsCollection.find(find).limit(1).into(new ArrayList<Document>());
132+
List<Document> results = ticketsCollection.find(find).limit(1).into(new ArrayList<>());
133133
if (results.size() > 0) {
134134
LotteryTicket lotteryTicket = docToTicket(results.get(0));
135135
return Optional.of(lotteryTicket);
@@ -153,7 +153,7 @@ public Optional<LotteryTicketId> save(LotteryTicket ticket) {
153153
@Override
154154
public Map<LotteryTicketId, LotteryTicket> findAll() {
155155
Map<LotteryTicketId, LotteryTicket> map = new HashMap<>();
156-
List<Document> docs = ticketsCollection.find(new Document()).into(new ArrayList<Document>());
156+
List<Document> docs = ticketsCollection.find(new Document()).into(new ArrayList<>());
157157
for (Document doc: docs) {
158158
LotteryTicket lotteryTicket = docToTicket(doc);
159159
map.put(lotteryTicket.getId(), lotteryTicket);
@@ -169,11 +169,9 @@ public void deleteAll() {
169169
private LotteryTicket docToTicket(Document doc) {
170170
PlayerDetails playerDetails = new PlayerDetails(doc.getString("email"), doc.getString("bank"),
171171
doc.getString("phone"));
172-
int[] numArray = Arrays.asList(doc.getString("numbers").split(",")).stream().mapToInt(Integer::parseInt).toArray();
173-
Set<Integer> numbers = new HashSet<>();
174-
for (int num: numArray) {
175-
numbers.add(num);
176-
}
172+
Set<Integer> numbers = Arrays.stream(doc.getString("numbers").split(","))
173+
.map(Integer::parseInt)
174+
.collect(Collectors.toSet());
177175
LotteryNumbers lotteryNumbers = LotteryNumbers.create(numbers);
178176
return new LotteryTicket(new LotteryTicketId(doc.getInteger("ticketId")), playerDetails, lotteryNumbers);
179177
}

hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryConstants.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ private LotteryConstants() {
3535
public static final int PRIZE_AMOUNT = 100000;
3636
public static final String SERVICE_BANK_ACCOUNT = "123-123";
3737
public static final int TICKET_PRIZE = 3;
38-
public static final int SERVICE_BANK_ACCOUNT_SALDO = 150000;
39-
public static final int PLAYER_MAX_SALDO = 100;
38+
public static final int SERVICE_BANK_ACCOUNT_BALANCE = 150000;
39+
public static final int PLAYER_MAX_BALANCE = 100;
4040

4141
}

hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ private void generateRandomNumbers() {
9696
RandomNumberGenerator generator = new RandomNumberGenerator(MIN_NUMBER, MAX_NUMBER);
9797
while (numbers.size() < NUM_NUMBERS) {
9898
int num = generator.nextInt();
99-
if (!numbers.contains(num)) {
100-
numbers.add(num);
101-
}
99+
numbers.add(num);
102100
}
103101
}
104102

@@ -162,5 +160,5 @@ public boolean equals(Object obj) {
162160
return false;
163161
}
164162
return true;
165-
}
163+
}
166164
}

hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ public class SampleData {
8484
PLAYERS.add(new PlayerDetails("harriet@google.com", "842-404", "+131243252"));
8585
InMemoryBank wireTransfers = new InMemoryBank();
8686
Random random = new Random();
87-
for (int i = 0; i < PLAYERS.size(); i++) {
88-
wireTransfers.setFunds(PLAYERS.get(i).getBankAccount(),
89-
random.nextInt(LotteryConstants.PLAYER_MAX_SALDO));
87+
for (PlayerDetails player : PLAYERS) {
88+
wireTransfers.setFunds(player.getBankAccount(),
89+
random.nextInt(LotteryConstants.PLAYER_MAX_BALANCE));
9090
}
9191
}
9292

hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ void testGivenNumbers() {
5454
void testNumbersCantBeModified() {
5555
LotteryNumbers numbers = LotteryNumbers.create(
5656
new HashSet<>(Arrays.asList(1, 2, 3, 4)));
57-
assertThrows(UnsupportedOperationException.class, () -> {
58-
numbers.getNumbers().add(5);
59-
});
57+
assertThrows(UnsupportedOperationException.class, () -> numbers.getNumbers().add(5));
6058
}
6159

6260
@Test

hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ void testLottery() {
101101
assertNotEquals(CheckResult.TICKET_NOT_SUBMITTED, checkResult.getResult());
102102
if (checkResult.getResult().equals(CheckResult.WIN_PRIZE)) {
103103
assertTrue(checkResult.getPrizeAmount() > 0);
104-
} else if (checkResult.getResult().equals(CheckResult.WIN_PRIZE)) {
104+
} else {
105105
assertEquals(0, checkResult.getPrizeAmount());
106106
}
107107
}

hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import java.util.HashSet;
2929

3030
import static org.junit.jupiter.api.Assertions.assertEquals;
31-
import static org.junit.jupiter.api.Assertions.assertFalse;
3231
import static org.junit.jupiter.api.Assertions.assertNotEquals;
3332

3433
/**
@@ -39,14 +38,14 @@ class LotteryTicketTest {
3938
@Test
4039
void testEquals() {
4140
PlayerDetails details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
42-
LotteryNumbers numbers1 = LotteryNumbers.create(new HashSet<Integer>(Arrays.asList(1, 2, 3, 4)));
41+
LotteryNumbers numbers1 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4)));
4342
LotteryTicket ticket1 = new LotteryTicket(new LotteryTicketId(), details1, numbers1);
4443
PlayerDetails details2 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
45-
LotteryNumbers numbers2 = LotteryNumbers.create(new HashSet<Integer>(Arrays.asList(1, 2, 3, 4)));
44+
LotteryNumbers numbers2 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4)));
4645
LotteryTicket ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2);
4746
assertEquals(ticket1, ticket2);
4847
PlayerDetails details3 = new PlayerDetails("elsa@foo.bar", "1223-121212", "+49332322");
49-
LotteryNumbers numbers3 = LotteryNumbers.create(new HashSet<Integer>(Arrays.asList(1, 2, 3, 8)));
48+
LotteryNumbers numbers3 = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 8)));
5049
LotteryTicket ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3);
5150
assertNotEquals(ticket1, ticket3);
5251
}

0 commit comments

Comments
 (0)