diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepositoryMock.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepositoryMock.java index 4b9ff95d9..f297edeea 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepositoryMock.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepositoryMock.java @@ -37,7 +37,7 @@ import com.iluwatar.hexagonal.domain.LotteryTicketRepository; */ public class LotteryTicketRepositoryMock implements LotteryTicketRepository { - private Map tickets = new HashMap<>(); + private static Map tickets = new HashMap<>(); @Override public Optional findById(LotteryTicketId id) { @@ -60,4 +60,9 @@ public class LotteryTicketRepositoryMock implements LotteryTicketRepository { public Map findAll() { return tickets; } + + @Override + public void deleteAll() { + tickets.clear(); + } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java index 58edd9b28..af3608d00 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministration.java @@ -33,5 +33,6 @@ public interface LotteryAdministration { Map getAllSubmittedTickets(); LotteryNumbers performLottery(); + void resetLottery(); } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministrationImpl.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministrationImpl.java index ee1d56f45..c4983de4a 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministrationImpl.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryAdministrationImpl.java @@ -1,3 +1,25 @@ +/** + * The MIT License + * Copyright (c) 2014 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package com.iluwatar.hexagonal.domain; import java.util.Map; @@ -26,4 +48,9 @@ public class LotteryAdministrationImpl implements LotteryAdministration { public LotteryNumbers performLottery() { return LotteryNumbers.createRandom(); } + + @Override + public void resetLottery() { + repository.deleteAll(); + } } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketRepository.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketRepository.java index 45e4a6f61..b39f2e80d 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketRepository.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketRepository.java @@ -35,5 +35,6 @@ public interface LotteryTicketRepository { Optional findById(LotteryTicketId id); Optional save(LotteryTicket ticket); Map findAll(); + void deleteAll(); } diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryAdministrationTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryAdministrationTest.java index be953a4e5..eabeecfa5 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryAdministrationTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryAdministrationTest.java @@ -1,3 +1,25 @@ +/** + * The MIT License + * Copyright (c) 2014 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package com.iluwatar.hexagonal.domain; import static org.junit.Assert.assertEquals; @@ -19,6 +41,7 @@ public class LotteryAdministrationTest { @Before public void submitTickets() { + repository.deleteAll(); repository.save(LotteryTestUtils.createLotteryTicket()); repository.save(LotteryTestUtils.createLotteryTicket()); repository.save(LotteryTestUtils.createLotteryTicket()); @@ -28,7 +51,7 @@ public class LotteryAdministrationTest { @Test public void testGetAllTickets() { - assertEquals(admin.getAllSubmittedTickets().size(), 4); + assertEquals(admin.getAllSubmittedTickets().size(), 5); } @Test diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTestUtils.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTestUtils.java index 21a25e4f0..854230116 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTestUtils.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTestUtils.java @@ -1,3 +1,25 @@ +/** + * The MIT License + * Copyright (c) 2014 Ilkka Seppälä + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ package com.iluwatar.hexagonal.domain; import java.util.Arrays; @@ -10,6 +32,9 @@ import java.util.HashSet; */ public class LotteryTestUtils { + /** + * @return lottery ticket + */ public static LotteryTicket createLotteryTicket() { PlayerDetails details = PlayerDetails.create("foo@bar.com", "12231-213132", "+99324554"); LotteryNumbers numbers = LotteryNumbers.create(new HashSet<>(Arrays.asList(1, 2, 3, 4))); diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketRepositoryTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketRepositoryTest.java index 02308b261..f752d7f84 100644 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketRepositoryTest.java +++ b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketRepositoryTest.java @@ -27,6 +27,7 @@ import static org.junit.Assert.assertTrue; import java.util.Optional; +import org.junit.Before; import org.junit.Test; import com.iluwatar.hexagonal.database.LotteryTicketRepositoryMock; @@ -38,6 +39,13 @@ import com.iluwatar.hexagonal.database.LotteryTicketRepositoryMock; */ public class LotteryTicketRepositoryTest { + private final LotteryTicketRepository repository = new LotteryTicketRepositoryMock(); + + @Before + public void clear() { + repository.deleteAll(); + } + @Test public void testCrudOperations() { LotteryTicketRepository repository = new LotteryTicketRepositoryMock();