diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java index 324b965f4..369f64966 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryService.java @@ -22,6 +22,8 @@ */ package com.iluwatar.hexagonal.domain; +import java.util.Optional; + /** * * Interface for submitting and checking lottery tickets. @@ -29,7 +31,7 @@ package com.iluwatar.hexagonal.domain; */ public interface LotteryService { - LotteryTicketSubmitResult submitTicket(LotteryTicket ticket); + Optional submitTicket(LotteryTicket ticket); LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers); } diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryServiceImpl.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryServiceImpl.java index 9ef6f8007..d74ba240f 100644 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryServiceImpl.java +++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryServiceImpl.java @@ -26,7 +26,6 @@ import java.util.Optional; import com.iluwatar.hexagonal.database.LotteryTicketRepositoryMock; import com.iluwatar.hexagonal.domain.LotteryTicketCheckResult.CheckResult; -import com.iluwatar.hexagonal.domain.LotteryTicketSubmitResult.Result; public class LotteryServiceImpl implements LotteryService { @@ -37,13 +36,8 @@ public class LotteryServiceImpl implements LotteryService { } @Override - public LotteryTicketSubmitResult submitTicket(LotteryTicket ticket) { - Optional optional = repository.save(ticket); - Result result = Result.OK; - if (!optional.isPresent()) { - result = Result.ERROR; - } - return new LotteryTicketSubmitResult(result); + public Optional submitTicket(LotteryTicket ticket) { + return repository.save(ticket); } @Override diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketSubmitResult.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketSubmitResult.java deleted file mode 100644 index a7a6fc148..000000000 --- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketSubmitResult.java +++ /dev/null @@ -1,115 +0,0 @@ -/** - * 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.EnumSet; - -/** - * - * Immutable value object for passing lottery ticket submit results. - * - */ -public class LotteryTicketSubmitResult { - - /** - * - * Indicates if the submit was successful - * - */ - public enum Result {OK, ERROR}; - - /** - * - * Indicates the fields in the lottery ticket that have errors. - * - */ - public enum Fields {EMAIL, BANK_ACCOUNT, PHONE, NUMBERS}; - - private final Result result; - - private final EnumSet fields; - - /** - * Constructor. - */ - public LotteryTicketSubmitResult(Result submitResult) { - result = submitResult; - fields = EnumSet.noneOf(Fields.class); - } - - /** - * Constructor. - */ - public LotteryTicketSubmitResult(Result submitResult, EnumSet errorFields) { - result = submitResult; - fields = EnumSet.copyOf(errorFields); - } - - /** - * @return submit result - */ - public Result getResult() { - return result; - } - - /** - * @return fields that have errors - */ - public EnumSet getErrorFields() { - return EnumSet.copyOf(fields); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((fields == null) ? 0 : fields.hashCode()); - result = prime * result + ((this.result == null) ? 0 : this.result.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - LotteryTicketSubmitResult other = (LotteryTicketSubmitResult) obj; - if (fields == null) { - if (other.fields != null) { - return false; - } - } else if (!fields.equals(other.fields)) { - return false; - } - if (result != other.result) { - return false; - } - return true; - } -} diff --git a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketSubmitResultTest.java b/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketSubmitResultTest.java deleted file mode 100644 index 697e32f69..000000000 --- a/hexagonal/src/test/java/com/iluwatar/hexagonal/domain/LotteryTicketSubmitResultTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * 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; -import static org.junit.Assert.assertFalse; - -import java.util.EnumSet; - -import org.junit.Test; - -import com.iluwatar.hexagonal.domain.LotteryTicketSubmitResult.Fields; -import com.iluwatar.hexagonal.domain.LotteryTicketSubmitResult.Result; - -/** - * - * Unit tests for {@link LotteryTicketSubmitResult} - * - */ -public class LotteryTicketSubmitResultTest { - - @Test - public void testEquals() { - LotteryTicketSubmitResult submitResult1 = new LotteryTicketSubmitResult(Result.OK); - LotteryTicketSubmitResult submitResult2 = new LotteryTicketSubmitResult(Result.OK); - assertEquals(submitResult1, submitResult2); - LotteryTicketSubmitResult submitResult3 = new LotteryTicketSubmitResult( - Result.ERROR, EnumSet.of(Fields.EMAIL, Fields.BANK_ACCOUNT)); - assertFalse(submitResult1.equals(submitResult3)); - } -}