Java 11 migrate remaining (g,h,i) (#1116)

* Moves game-loop to Java 11

* Moves guarded-suspension to Java 11

* Moves half-sync-half-async to Java 11

* Moves hexagonal to Java 11

* Moves intercepting-filter to Java 11

* Moves interpreter to Java 11

* Moves iterator to Java 11
This commit is contained in:
Anurag Agarwal
2019-12-20 10:41:30 +05:30
committed by Ilkka Seppälä
parent 7d0a5c0edb
commit f835d3d516
68 changed files with 454 additions and 533 deletions

View File

@@ -32,7 +32,6 @@ class AppTest {
@Test
void testApp() {
String[] args = {};
App.main(args);
App.main(new String[]{});
}
}

View File

@@ -23,20 +23,18 @@
package com.iluwatar.hexagonal.banking;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
/**
*
* Tests for banking
*
*/
class InMemoryBankTest {
private final WireTransfers bank = new InMemoryBank();
@Test
void testInit() {
assertEquals(0, bank.getFunds("foo"));

View File

@@ -23,14 +23,14 @@
package com.iluwatar.hexagonal.banking;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.iluwatar.hexagonal.mongo.MongoConnectionPropertiesLoader;
import com.mongodb.MongoClient;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Tests for Mongo banking adapter
*/
@@ -45,7 +45,7 @@ class MongoBankTest {
@BeforeEach
void init() {
MongoConnectionPropertiesLoader.load();
MongoClient mongoClient = new MongoClient(System.getProperty("mongo-host"),
var mongoClient = new MongoClient(System.getProperty("mongo-host"),
Integer.parseInt(System.getProperty("mongo-port")));
mongoClient.dropDatabase(TEST_DB);
mongoClient.close();

View File

@@ -23,40 +23,34 @@
package com.iluwatar.hexagonal.database;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import com.iluwatar.hexagonal.domain.LotteryTicket;
import com.iluwatar.hexagonal.domain.LotteryTicketId;
import com.iluwatar.hexagonal.test.LotteryTestUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
*
* Tests for {@link LotteryTicketRepository}
*
*/
class InMemoryTicketRepositoryTest {
private final LotteryTicketRepository repository = new InMemoryTicketRepository();
@BeforeEach
void clear() {
repository.deleteAll();
}
@Test
void testCrudOperations() {
LotteryTicketRepository repository = new InMemoryTicketRepository();
var repository = new InMemoryTicketRepository();
assertTrue(repository.findAll().isEmpty());
LotteryTicket ticket = LotteryTestUtils.createLotteryTicket();
Optional<LotteryTicketId> id = repository.save(ticket);
var ticket = LotteryTestUtils.createLotteryTicket();
var id = repository.save(ticket);
assertTrue(id.isPresent());
assertEquals(1, repository.findAll().size());
Optional<LotteryTicket> optionalTicket = repository.findById(id.get());
var optionalTicket = repository.findById(id.get());
assertTrue(optionalTicket.isPresent());
}
}

View File

@@ -23,6 +23,9 @@
package com.iluwatar.hexagonal.database;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import com.iluwatar.hexagonal.domain.LotteryNumbers;
import com.iluwatar.hexagonal.domain.LotteryTicket;
import com.iluwatar.hexagonal.domain.LotteryTicketId;
@@ -33,11 +36,6 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Tests for Mongo based ticket repository
*/
@@ -53,7 +51,7 @@ class MongoTicketRepositoryTest {
@BeforeEach
void init() {
MongoConnectionPropertiesLoader.load();
MongoClient mongoClient = new MongoClient(System.getProperty("mongo-host"),
var mongoClient = new MongoClient(System.getProperty("mongo-host"),
Integer.parseInt(System.getProperty("mongo-port")));
mongoClient.dropDatabase(TEST_DB);
mongoClient.close();
@@ -77,16 +75,16 @@ class MongoTicketRepositoryTest {
@Test
void testCrudOperations() {
// create new lottery ticket and save it
PlayerDetails details = new PlayerDetails("foo@bar.com", "123-123", "07001234");
LotteryNumbers random = LotteryNumbers.createRandom();
LotteryTicket original = new LotteryTicket(new LotteryTicketId(), details, random);
Optional<LotteryTicketId> saved = repository.save(original);
var details = new PlayerDetails("foo@bar.com", "123-123", "07001234");
var random = LotteryNumbers.createRandom();
var original = new LotteryTicket(new LotteryTicketId(), details, random);
var saved = repository.save(original);
assertEquals(1, repository.getTicketsCollection().count());
assertTrue(saved.isPresent());
// fetch the saved lottery ticket from database and check its contents
Optional<LotteryTicket> found = repository.findById(saved.get());
var found = repository.findById(saved.get());
assertTrue(found.isPresent());
LotteryTicket ticket = found.get();
var ticket = found.get();
assertEquals("foo@bar.com", ticket.getPlayerDetails().getEmail());
assertEquals("123-123", ticket.getPlayerDetails().getBankAccount());
assertEquals("07001234", ticket.getPlayerDetails().getPhoneNumber());

View File

@@ -23,47 +23,47 @@
package com.iluwatar.hexagonal.domain;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
/**
*
* Unit tests for {@link LotteryNumbers}
*
*/
class LotteryNumbersTest {
@Test
void testGivenNumbers() {
LotteryNumbers numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
var numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
assertEquals(numbers.getNumbers().size(), 4);
assertTrue(numbers.getNumbers().contains(1));
assertTrue(numbers.getNumbers().contains(2));
assertTrue(numbers.getNumbers().contains(3));
assertTrue(numbers.getNumbers().contains(4));
}
@Test
void testNumbersCantBeModified() {
LotteryNumbers numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
var numbers = LotteryNumbers.create(Set.of(1, 2, 3, 4));
assertThrows(UnsupportedOperationException.class, () -> numbers.getNumbers().add(5));
}
@Test
void testRandomNumbers() {
LotteryNumbers numbers = LotteryNumbers.createRandom();
var numbers = LotteryNumbers.createRandom();
assertEquals(numbers.getNumbers().size(), LotteryNumbers.NUM_NUMBERS);
}
@Test
void testEquals() {
LotteryNumbers numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
LotteryNumbers numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
var numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
var numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
assertEquals(numbers1, numbers2);
LotteryNumbers numbers3 = LotteryNumbers.create(Set.of(11, 12, 13, 14));
var numbers3 = LotteryNumbers.create(Set.of(11, 12, 13, 14));
assertNotEquals(numbers1, numbers3);
}
}

View File

@@ -23,6 +23,10 @@
package com.iluwatar.hexagonal.domain;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
@@ -30,17 +34,12 @@ import com.iluwatar.hexagonal.banking.WireTransfers;
import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
import com.iluwatar.hexagonal.module.LotteryTestingModule;
import com.iluwatar.hexagonal.test.LotteryTestUtils;
import java.util.Set;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
/**
*
* Test the lottery system
*
*/
class LotteryTest {
@@ -62,38 +61,38 @@ class LotteryTest {
// add funds to the test player's bank account
wireTransfers.setFunds("123-12312", 100);
}
@Test
void testLottery() {
// admin resets the lottery
administration.resetLottery();
assertEquals(0, administration.getAllSubmittedTickets().size());
// players submit the lottery tickets
Optional<LotteryTicketId> ticket1 = service.submitTicket(LotteryTestUtils.createLotteryTicket("cvt@bbb.com",
var ticket1 = service.submitTicket(LotteryTestUtils.createLotteryTicket("cvt@bbb.com",
"123-12312", "+32425255", Set.of(1, 2, 3, 4)));
assertTrue(ticket1.isPresent());
Optional<LotteryTicketId> ticket2 = service.submitTicket(LotteryTestUtils.createLotteryTicket("ant@bac.com",
var ticket2 = service.submitTicket(LotteryTestUtils.createLotteryTicket("ant@bac.com",
"123-12312", "+32423455", Set.of(11, 12, 13, 14)));
assertTrue(ticket2.isPresent());
Optional<LotteryTicketId> ticket3 = service.submitTicket(LotteryTestUtils.createLotteryTicket("arg@boo.com",
var ticket3 = service.submitTicket(LotteryTestUtils.createLotteryTicket("arg@boo.com",
"123-12312", "+32421255", Set.of(6, 8, 13, 19)));
assertTrue(ticket3.isPresent());
assertEquals(3, administration.getAllSubmittedTickets().size());
// perform lottery
LotteryNumbers winningNumbers = administration.performLottery();
var winningNumbers = administration.performLottery();
// cheat a bit for testing sake, use winning numbers to submit another ticket
Optional<LotteryTicketId> ticket4 = service.submitTicket(LotteryTestUtils.createLotteryTicket("lucky@orb.com",
var ticket4 = service.submitTicket(LotteryTestUtils.createLotteryTicket("lucky@orb.com",
"123-12312", "+12421255", winningNumbers.getNumbers()));
assertTrue(ticket4.isPresent());
assertEquals(4, administration.getAllSubmittedTickets().size());
// check winners
Map<LotteryTicketId, LotteryTicket> tickets = administration.getAllSubmittedTickets();
for (LotteryTicketId id: tickets.keySet()) {
LotteryTicketCheckResult checkResult = service.checkTicketForPrize(id, winningNumbers);
var tickets = administration.getAllSubmittedTickets();
for (var id : tickets.keySet()) {
var checkResult = service.checkTicketForPrize(id, winningNumbers);
assertNotEquals(CheckResult.TICKET_NOT_SUBMITTED, checkResult.getResult());
if (checkResult.getResult().equals(CheckResult.WIN_PRIZE)) {
assertTrue(checkResult.getPrizeAmount() > 0);
@@ -101,9 +100,9 @@ class LotteryTest {
assertEquals(0, checkResult.getPrizeAmount());
}
}
// check another ticket that has not been submitted
LotteryTicketCheckResult checkResult = service.checkTicketForPrize(new LotteryTicketId(), winningNumbers);
var checkResult = service.checkTicketForPrize(new LotteryTicketId(), winningNumbers);
assertEquals(CheckResult.TICKET_NOT_SUBMITTED, checkResult.getResult());
assertEquals(0, checkResult.getPrizeAmount());
}

View File

@@ -23,25 +23,23 @@
package com.iluwatar.hexagonal.domain;
import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult;
import org.junit.jupiter.api.Test;
/**
*
* Unit tests for {@link LotteryTicketCheckResult}
*
*/
class LotteryTicketCheckResultTest {
@Test
void testEquals() {
LotteryTicketCheckResult result1 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
LotteryTicketCheckResult result2 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
var result1 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
var result2 = new LotteryTicketCheckResult(CheckResult.NO_PRIZE);
assertEquals(result1, result2);
LotteryTicketCheckResult result3 = new LotteryTicketCheckResult(CheckResult.WIN_PRIZE, 300000);
var result3 = new LotteryTicketCheckResult(CheckResult.WIN_PRIZE, 300000);
assertNotEquals(result1, result3);
}
}
}

View File

@@ -23,11 +23,11 @@
package com.iluwatar.hexagonal.domain;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import org.junit.jupiter.api.Test;
/**
* Tests for lottery ticket id
*/
@@ -35,12 +35,12 @@ class LotteryTicketIdTest {
@Test
void testEquals() {
LotteryTicketId ticketId1 = new LotteryTicketId();
LotteryTicketId ticketId2 = new LotteryTicketId();
LotteryTicketId ticketId3 = new LotteryTicketId();
var ticketId1 = new LotteryTicketId();
var ticketId2 = new LotteryTicketId();
var ticketId3 = new LotteryTicketId();
assertNotEquals(ticketId1, ticketId2);
assertNotEquals(ticketId2, ticketId3);
LotteryTicketId ticketId4 = new LotteryTicketId(ticketId1.getId());
var ticketId4 = new LotteryTicketId(ticketId1.getId());
assertEquals(ticketId1, ticketId4);
}
}

View File

@@ -23,13 +23,12 @@
package com.iluwatar.hexagonal.domain;
import org.junit.jupiter.api.Test;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import java.util.Set;
import org.junit.jupiter.api.Test;
/**
* Test Lottery Tickets for equality
*/
@@ -37,16 +36,16 @@ class LotteryTicketTest {
@Test
void testEquals() {
PlayerDetails details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
LotteryNumbers numbers1 = LotteryNumbers.create(Set.of(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(Set.of(1, 2, 3, 4));
LotteryTicket ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2);
var details1 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
var numbers1 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
var ticket1 = new LotteryTicket(new LotteryTicketId(), details1, numbers1);
var details2 = new PlayerDetails("bob@foo.bar", "1212-121212", "+34332322");
var numbers2 = LotteryNumbers.create(Set.of(1, 2, 3, 4));
var ticket2 = new LotteryTicket(new LotteryTicketId(), details2, numbers2);
assertEquals(ticket1, ticket2);
PlayerDetails details3 = new PlayerDetails("elsa@foo.bar", "1223-121212", "+49332322");
LotteryNumbers numbers3 = LotteryNumbers.create(Set.of(1, 2, 3, 8));
LotteryTicket ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3);
var details3 = new PlayerDetails("elsa@foo.bar", "1223-121212", "+49332322");
var numbers3 = LotteryNumbers.create(Set.of(1, 2, 3, 8));
var ticket3 = new LotteryTicket(new LotteryTicketId(), details3, numbers3);
assertNotEquals(ticket1, ticket3);
}
}

View File

@@ -23,24 +23,22 @@
package com.iluwatar.hexagonal.domain;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import org.junit.jupiter.api.Test;
/**
*
* Unit tests for {@link PlayerDetails}
*
*/
class PlayerDetailsTest {
@Test
void testEquals() {
PlayerDetails details1 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
PlayerDetails details2 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
var details1 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
var details2 = new PlayerDetails("tom@foo.bar", "11212-123434", "+12323425");
assertEquals(details1, details2);
PlayerDetails details3 = new PlayerDetails("john@foo.bar", "16412-123439", "+34323432");
var details3 = new PlayerDetails("john@foo.bar", "16412-123439", "+34323432");
assertNotEquals(details1, details3);
}
}
}

View File

@@ -23,6 +23,8 @@
package com.iluwatar.hexagonal.eventlog;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.iluwatar.hexagonal.domain.PlayerDetails;
import com.iluwatar.hexagonal.mongo.MongoConnectionPropertiesLoader;
import com.mongodb.MongoClient;
@@ -30,8 +32,6 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Tests for Mongo event log
*/
@@ -46,7 +46,7 @@ class MongoEventLogTest {
@BeforeEach
void init() {
MongoConnectionPropertiesLoader.load();
MongoClient mongoClient = new MongoClient(System.getProperty("mongo-host"),
var mongoClient = new MongoClient(System.getProperty("mongo-host"),
Integer.parseInt(System.getProperty("mongo-port")));
mongoClient.dropDatabase(TEST_DB);
mongoClient.close();
@@ -60,7 +60,7 @@ class MongoEventLogTest {
@Test
void testFundTransfers() {
PlayerDetails playerDetails = new PlayerDetails("john@wayne.com", "000-000", "03432534543");
var playerDetails = new PlayerDetails("john@wayne.com", "000-000", "03432534543");
mongoEventLog.prizeError(playerDetails, 1000);
assertEquals(1, mongoEventLog.getEventsCollection().count());
mongoEventLog.prizeError(playerDetails, 1000);

View File

@@ -27,13 +27,10 @@ import com.iluwatar.hexagonal.domain.LotteryNumbers;
import com.iluwatar.hexagonal.domain.LotteryTicket;
import com.iluwatar.hexagonal.domain.LotteryTicketId;
import com.iluwatar.hexagonal.domain.PlayerDetails;
import java.util.Set;
/**
*
* Utilities for lottery tests
*
*/
public class LotteryTestUtils {
@@ -43,14 +40,14 @@ public class LotteryTestUtils {
public static LotteryTicket createLotteryTicket() {
return createLotteryTicket("foo@bar.com", "12231-213132", "+99324554", Set.of(1, 2, 3, 4));
}
/**
* @return lottery ticket
*/
public static LotteryTicket createLotteryTicket(String email, String account, String phone,
Set<Integer> givenNumbers) {
PlayerDetails details = new PlayerDetails(email, account, phone);
LotteryNumbers numbers = LotteryNumbers.create(givenNumbers);
Set<Integer> givenNumbers) {
var details = new PlayerDetails(email, account, phone);
var numbers = LotteryNumbers.create(givenNumbers);
return new LotteryTicket(new LotteryTicketId(), details, numbers);
}
}