From 4446e74338c80d452ed9f516ffa656f7f3ad9dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Matejko?= Date: Sat, 27 Oct 2018 13:09:16 +0200 Subject: [PATCH] Hexagonal pattern fixes (#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 --- .../src/main/java/com/iluwatar/hexagonal/App.java | 6 +++--- .../iluwatar/hexagonal/banking/InMemoryBank.java | 2 +- .../com/iluwatar/hexagonal/banking/MongoBank.java | 2 +- .../hexagonal/database/MongoTicketRepository.java | 14 ++++++-------- .../hexagonal/domain/LotteryConstants.java | 4 ++-- .../iluwatar/hexagonal/domain/LotteryNumbers.java | 6 ++---- .../iluwatar/hexagonal/sampledata/SampleData.java | 6 +++--- .../hexagonal/domain/LotteryNumbersTest.java | 4 +--- .../com/iluwatar/hexagonal/domain/LotteryTest.java | 2 +- .../hexagonal/domain/LotteryTicketTest.java | 7 +++---- 10 files changed, 23 insertions(+), 30 deletions(-) diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java index 6e226a1e1..8d624fdbe 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/App.java @@ -70,14 +70,14 @@ public class App { 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(); } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/InMemoryBank.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/InMemoryBank.java index a8eb7817c..899d2c7ac 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/InMemoryBank.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/InMemoryBank.java @@ -37,7 +37,7 @@ public class InMemoryBank implements WireTransfers { private static Map 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 diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java index 7ccc829ed..d392b8b10 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/MongoBank.java @@ -111,7 +111,7 @@ public class MongoBank implements WireTransfers { @Override public int getFunds(String bankAccount) { Document search = new Document("_id", bankAccount); - List results = accountsCollection.find(search).limit(1).into(new ArrayList()); + List results = accountsCollection.find(search).limit(1).into(new ArrayList<>()); if (results.size() > 0) { return results.get(0).getInteger("funds"); } else { diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java index 7b103da4f..8a6594f79 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/MongoTicketRepository.java @@ -34,11 +34,11 @@ import org.bson.Document; 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 @@ -129,7 +129,7 @@ public class MongoTicketRepository implements LotteryTicketRepository { @Override public Optional findById(LotteryTicketId id) { Document find = new Document("ticketId", id.getId()); - List results = ticketsCollection.find(find).limit(1).into(new ArrayList()); + List results = ticketsCollection.find(find).limit(1).into(new ArrayList<>()); if (results.size() > 0) { LotteryTicket lotteryTicket = docToTicket(results.get(0)); return Optional.of(lotteryTicket); @@ -153,7 +153,7 @@ public class MongoTicketRepository implements LotteryTicketRepository { @Override public Map findAll() { Map map = new HashMap<>(); - List docs = ticketsCollection.find(new Document()).into(new ArrayList()); + List docs = ticketsCollection.find(new Document()).into(new ArrayList<>()); for (Document doc: docs) { LotteryTicket lotteryTicket = docToTicket(doc); map.put(lotteryTicket.getId(), lotteryTicket); @@ -169,11 +169,9 @@ public class MongoTicketRepository implements LotteryTicketRepository { 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 numbers = new HashSet<>(); - for (int num: numArray) { - numbers.add(num); - } + Set 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); } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryConstants.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryConstants.java index 9ecbb74b9..c1c5e8326 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryConstants.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryConstants.java @@ -35,7 +35,7 @@ public class 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; } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java index 65b173cab..c6501a5a6 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryNumbers.java @@ -96,9 +96,7 @@ public class LotteryNumbers { 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); } } @@ -162,5 +160,5 @@ public class LotteryNumbers { return false; } return true; - } + } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java index 23d409ff4..410b9449b 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/sampledata/SampleData.java @@ -84,9 +84,9 @@ public class SampleData { PLAYERS.add(new PlayerDetails("harriet@google.com", "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)); } } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java index de9247ed9..2baf58762 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryNumbersTest.java @@ -54,9 +54,7 @@ class LotteryNumbersTest { 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 diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java index c7ec40d34..4dafa98b8 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTest.java @@ -101,7 +101,7 @@ class LotteryTest { 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()); } } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java index 1274a6dd3..0a313ddcf 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketTest.java @@ -28,7 +28,6 @@ import java.util.Arrays; 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; /** @@ -39,14 +38,14 @@ class LotteryTicketTest { @Test void testEquals() { PlayerDetails details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322"); - LotteryNumbers numbers1 = LotteryNumbers.create(new HashSet(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("bob@foo.bar", "1212-121212", "+34332322"); - LotteryNumbers numbers2 = LotteryNumbers.create(new HashSet(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("elsa@foo.bar", "1223-121212", "+49332322"); - LotteryNumbers numbers3 = LotteryNumbers.create(new HashSet(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); }