Fixed most reported issues by SonarCloud.
This commit is contained in:
@ -46,6 +46,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
private static final String DEFAULT_DB = "lotteryDB";
|
||||
private static final String DEFAULT_TICKETS_COLLECTION = "lotteryTickets";
|
||||
private static final String DEFAULT_COUNTERS_COLLECTION = "counters";
|
||||
private static final String TICKET_ID = "ticketId";
|
||||
|
||||
private MongoClient mongoClient;
|
||||
private MongoDatabase database;
|
||||
@ -93,7 +94,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
}
|
||||
|
||||
private void initCounters() {
|
||||
var doc = new Document("_id", "ticketId").append("seq", 1);
|
||||
var doc = new Document("_id", TICKET_ID).append("seq", 1);
|
||||
countersCollection.insertOne(doc);
|
||||
}
|
||||
|
||||
@ -103,7 +104,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
* @return next ticket id
|
||||
*/
|
||||
public int getNextId() {
|
||||
var find = new Document("_id", "ticketId");
|
||||
var find = new Document("_id", TICKET_ID);
|
||||
var increase = new Document("seq", 1);
|
||||
var update = new Document("$inc", increase);
|
||||
var result = countersCollection.findOneAndUpdate(find, update);
|
||||
@ -131,7 +132,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
@Override
|
||||
public Optional<LotteryTicket> findById(LotteryTicketId id) {
|
||||
return ticketsCollection
|
||||
.find(new Document("ticketId", id.getId()))
|
||||
.find(new Document(TICKET_ID, id.getId()))
|
||||
.limit(1)
|
||||
.into(new ArrayList<>())
|
||||
.stream()
|
||||
@ -142,7 +143,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
@Override
|
||||
public Optional<LotteryTicketId> save(LotteryTicket ticket) {
|
||||
var ticketId = getNextId();
|
||||
var doc = new Document("ticketId", ticketId);
|
||||
var doc = new Document(TICKET_ID, ticketId);
|
||||
doc.put("email", ticket.getPlayerDetails().getEmail());
|
||||
doc.put("bank", ticket.getPlayerDetails().getBankAccount());
|
||||
doc.put("phone", ticket.getPlayerDetails().getPhoneNumber());
|
||||
@ -173,7 +174,7 @@ public class MongoTicketRepository implements LotteryTicketRepository {
|
||||
.map(Integer::parseInt)
|
||||
.collect(Collectors.toSet());
|
||||
var lotteryNumbers = LotteryNumbers.create(numbers);
|
||||
var ticketId = new LotteryTicketId(doc.getInteger("ticketId"));
|
||||
var ticketId = new LotteryTicketId(doc.getInteger(TICKET_ID));
|
||||
return new LotteryTicket(ticketId, playerDetails, lotteryNumbers);
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,9 @@ public class MongoEventLog implements LotteryEventLog {
|
||||
|
||||
private static final String DEFAULT_DB = "lotteryDB";
|
||||
private static final String DEFAULT_EVENTS_COLLECTION = "events";
|
||||
private static final String EMAIL = "email";
|
||||
private static final String PHONE = "phone";
|
||||
public static final String MESSAGE = "message";
|
||||
|
||||
private MongoClient mongoClient;
|
||||
private MongoDatabase database;
|
||||
@ -107,41 +110,41 @@ public class MongoEventLog implements LotteryEventLog {
|
||||
|
||||
@Override
|
||||
public void ticketSubmitted(PlayerDetails details) {
|
||||
var document = new Document("email", details.getEmail());
|
||||
document.put("phone", details.getPhoneNumber());
|
||||
var document = new Document(EMAIL, details.getEmail());
|
||||
document.put(PHONE, details.getPhoneNumber());
|
||||
document.put("bank", details.getBankAccount());
|
||||
document
|
||||
.put("message", "Lottery ticket was submitted and bank account was charged for 3 credits.");
|
||||
.put(MESSAGE, "Lottery ticket was submitted and bank account was charged for 3 credits.");
|
||||
eventsCollection.insertOne(document);
|
||||
stdOutEventLog.ticketSubmitted(details);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ticketSubmitError(PlayerDetails details) {
|
||||
var document = new Document("email", details.getEmail());
|
||||
document.put("phone", details.getPhoneNumber());
|
||||
var document = new Document(EMAIL, details.getEmail());
|
||||
document.put(PHONE, details.getPhoneNumber());
|
||||
document.put("bank", details.getBankAccount());
|
||||
document.put("message", "Lottery ticket could not be submitted because lack of funds.");
|
||||
document.put(MESSAGE, "Lottery ticket could not be submitted because lack of funds.");
|
||||
eventsCollection.insertOne(document);
|
||||
stdOutEventLog.ticketSubmitError(details);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ticketDidNotWin(PlayerDetails details) {
|
||||
var document = new Document("email", details.getEmail());
|
||||
document.put("phone", details.getPhoneNumber());
|
||||
var document = new Document(EMAIL, details.getEmail());
|
||||
document.put(PHONE, details.getPhoneNumber());
|
||||
document.put("bank", details.getBankAccount());
|
||||
document.put("message", "Lottery ticket was checked and unfortunately did not win this time.");
|
||||
document.put(MESSAGE, "Lottery ticket was checked and unfortunately did not win this time.");
|
||||
eventsCollection.insertOne(document);
|
||||
stdOutEventLog.ticketDidNotWin(details);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ticketWon(PlayerDetails details, int prizeAmount) {
|
||||
var document = new Document("email", details.getEmail());
|
||||
document.put("phone", details.getPhoneNumber());
|
||||
var document = new Document(EMAIL, details.getEmail());
|
||||
document.put(PHONE, details.getPhoneNumber());
|
||||
document.put("bank", details.getBankAccount());
|
||||
document.put("message", String
|
||||
document.put(MESSAGE, String
|
||||
.format("Lottery ticket won! The bank account was deposited with %d credits.",
|
||||
prizeAmount));
|
||||
eventsCollection.insertOne(document);
|
||||
@ -150,10 +153,10 @@ public class MongoEventLog implements LotteryEventLog {
|
||||
|
||||
@Override
|
||||
public void prizeError(PlayerDetails details, int prizeAmount) {
|
||||
var document = new Document("email", details.getEmail());
|
||||
document.put("phone", details.getPhoneNumber());
|
||||
var document = new Document(EMAIL, details.getEmail());
|
||||
document.put(PHONE, details.getPhoneNumber());
|
||||
document.put("bank", details.getBankAccount());
|
||||
document.put("message", String
|
||||
document.put(MESSAGE, String
|
||||
.format("Lottery ticket won! Unfortunately the bank credit transfer of %d failed.",
|
||||
prizeAmount));
|
||||
eventsCollection.insertOne(document);
|
||||
|
@ -25,13 +25,16 @@ package com.iluwatar.hexagonal;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
|
||||
/**
|
||||
* Unit test for simple App.
|
||||
*/
|
||||
class AppTest {
|
||||
|
||||
@Test
|
||||
void testApp() {
|
||||
App.main(new String[]{});
|
||||
void shouldExecuteApplicationWithoutException() {
|
||||
assertDoesNotThrow(() -> App.main(new String[]{}));
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user