fix sonarbugs - adding test cases for Commander class
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
package com.iluwatar.commander;
|
||||
|
||||
import com.iluwatar.commander.employeehandle.EmployeeDatabase;
|
||||
import com.iluwatar.commander.employeehandle.EmployeeHandle;
|
||||
import com.iluwatar.commander.exceptions.DatabaseUnavailableException;
|
||||
import com.iluwatar.commander.messagingservice.MessagingDatabase;
|
||||
import com.iluwatar.commander.messagingservice.MessagingService;
|
||||
import com.iluwatar.commander.paymentservice.PaymentDatabase;
|
||||
import com.iluwatar.commander.paymentservice.PaymentService;
|
||||
import com.iluwatar.commander.queue.QueueDatabase;
|
||||
import com.iluwatar.commander.shippingservice.ShippingDatabase;
|
||||
import com.iluwatar.commander.shippingservice.ShippingService;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class CommanderTest {
|
||||
|
||||
private final int numOfRetries = 1;
|
||||
private final long retryDuration = 10_000;
|
||||
private final long queueTime = 1_000;
|
||||
private final long queueTaskTime = 10_000;
|
||||
private final long paymentTime = 60_000;
|
||||
private final long messageTime = 50_000;
|
||||
private final long employeeTime = 20_000;
|
||||
|
||||
private Commander buildCommanderObject() {
|
||||
PaymentService paymentService = new PaymentService
|
||||
(new PaymentDatabase(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException());
|
||||
var shippingService = new ShippingService(new ShippingDatabase());
|
||||
var messagingService = new MessagingService(new MessagingDatabase());
|
||||
var employeeHandle = new EmployeeHandle
|
||||
(new EmployeeDatabase(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException());
|
||||
var qdb = new QueueDatabase
|
||||
(new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||
new DatabaseUnavailableException(), new DatabaseUnavailableException());
|
||||
return new Commander(employeeHandle, paymentService, shippingService,
|
||||
messagingService, qdb, numOfRetries, retryDuration,
|
||||
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||
}
|
||||
|
||||
private Commander buildCommanderObjectWithoutPaymentDB() {
|
||||
return buildCommanderObjectWithoutPaymentDB(false);
|
||||
}
|
||||
|
||||
private Commander buildCommanderObjectWithoutPaymentDB(boolean includeException) {
|
||||
var l = new DatabaseUnavailableException();
|
||||
PaymentService paymentService;
|
||||
ShippingService shippingService;
|
||||
MessagingService messagingService;
|
||||
EmployeeHandle employeeHandle;
|
||||
if (includeException) {
|
||||
paymentService = new PaymentService
|
||||
(null, l);
|
||||
shippingService = new ShippingService(null, l);
|
||||
messagingService = new MessagingService(null, l);
|
||||
employeeHandle = new EmployeeHandle
|
||||
(null, l);
|
||||
} else {
|
||||
paymentService = new PaymentService
|
||||
(null);
|
||||
shippingService = new ShippingService(null);
|
||||
messagingService = new MessagingService(null);
|
||||
employeeHandle = new EmployeeHandle
|
||||
(null);
|
||||
}
|
||||
|
||||
|
||||
return new Commander(employeeHandle, paymentService, shippingService,
|
||||
messagingService, null, numOfRetries, retryDuration,
|
||||
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPlaceOrder() throws Exception {
|
||||
Commander c = buildCommanderObject();
|
||||
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||
c.placeOrder(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPlaceOrderWithServiceException() throws Exception {
|
||||
Commander c = buildCommanderObjectWithoutPaymentDB();
|
||||
var order = new Order(new User("K", null), "pen", 1f);
|
||||
c.placeOrder(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPlaceOrderWithServiceExceptionAndList() throws Exception {
|
||||
Commander c = buildCommanderObjectWithoutPaymentDB(true);
|
||||
var order = new Order(new User("K", null), "pen", 1f);
|
||||
c.placeOrder(order);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user