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
This commit is contained in:
parent
70f6e54353
commit
4446e74338
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -111,7 +111,7 @@ public class MongoBank implements WireTransfers {
|
||||
@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 {
|
||||
|
@ -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<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);
|
||||
@ -153,7 +153,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
@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);
|
||||
@ -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<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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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<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("bob@foo.bar", "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("elsa@foo.bar", "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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user