sonar fix - add test cases for CommanderTest
This commit is contained in:
@ -32,13 +32,27 @@ class CommanderTest {
|
|||||||
private final long employeeTime = 2_000;
|
private final long employeeTime = 2_000;
|
||||||
|
|
||||||
private Commander buildCommanderObject() {
|
private Commander buildCommanderObject() {
|
||||||
|
return buildCommanderObject(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Commander buildCommanderObject(boolean nonPaymentException) {
|
||||||
PaymentService paymentService = new PaymentService
|
PaymentService paymentService = new PaymentService
|
||||||
(new PaymentDatabase(), new DatabaseUnavailableException(),
|
(new PaymentDatabase(), new DatabaseUnavailableException(),
|
||||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||||
new DatabaseUnavailableException());
|
new DatabaseUnavailableException());
|
||||||
var shippingService = new ShippingService(new ShippingDatabase());
|
|
||||||
var messagingService = new MessagingService(new MessagingDatabase());
|
ShippingService shippingService;
|
||||||
|
MessagingService messagingService;
|
||||||
|
if (nonPaymentException) {
|
||||||
|
shippingService = new ShippingService(new ShippingDatabase(), new DatabaseUnavailableException());
|
||||||
|
messagingService = new MessagingService(new MessagingDatabase(), new DatabaseUnavailableException());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
shippingService = new ShippingService(new ShippingDatabase(), new DatabaseUnavailableException());
|
||||||
|
messagingService = new MessagingService(new MessagingDatabase(), new DatabaseUnavailableException());
|
||||||
|
|
||||||
|
}
|
||||||
var employeeHandle = new EmployeeHandle
|
var employeeHandle = new EmployeeHandle
|
||||||
(new EmployeeDatabase(), new DatabaseUnavailableException(),
|
(new EmployeeDatabase(), new DatabaseUnavailableException(),
|
||||||
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
new DatabaseUnavailableException(), new DatabaseUnavailableException(),
|
||||||
@ -67,7 +81,7 @@ class CommanderTest {
|
|||||||
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Commander buildCommanderObjectNoException() {
|
private Commander buildCommanderObjectNoPaymentException1() {
|
||||||
PaymentService paymentService = new PaymentService
|
PaymentService paymentService = new PaymentService
|
||||||
(new PaymentDatabase());
|
(new PaymentDatabase());
|
||||||
var shippingService = new ShippingService(new ShippingDatabase());
|
var shippingService = new ShippingService(new ShippingDatabase());
|
||||||
@ -81,6 +95,34 @@ class CommanderTest {
|
|||||||
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Commander buildCommanderObjectNoPaymentException2() {
|
||||||
|
PaymentService paymentService = new PaymentService
|
||||||
|
(new PaymentDatabase());
|
||||||
|
var shippingService = new ShippingService(new ShippingDatabase());
|
||||||
|
var messagingService = new MessagingService(new MessagingDatabase(), new IllegalStateException());
|
||||||
|
var employeeHandle = new EmployeeHandle
|
||||||
|
(new EmployeeDatabase(), new IllegalStateException());
|
||||||
|
var qdb = new QueueDatabase
|
||||||
|
(new DatabaseUnavailableException(), new IllegalStateException());
|
||||||
|
return new Commander(employeeHandle, paymentService, shippingService,
|
||||||
|
messagingService, qdb, numOfRetries, retryDuration,
|
||||||
|
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Commander buildCommanderObjectNoPaymentException3() {
|
||||||
|
PaymentService paymentService = new PaymentService
|
||||||
|
(new PaymentDatabase());
|
||||||
|
var shippingService = new ShippingService(new ShippingDatabase());
|
||||||
|
var messagingService = new MessagingService(new MessagingDatabase(), new DatabaseUnavailableException());
|
||||||
|
var employeeHandle = new EmployeeHandle
|
||||||
|
(new EmployeeDatabase(), new IllegalStateException());
|
||||||
|
var qdb = new QueueDatabase
|
||||||
|
(new DatabaseUnavailableException(), new IllegalStateException());
|
||||||
|
return new Commander(employeeHandle, paymentService, shippingService,
|
||||||
|
messagingService, qdb, numOfRetries, retryDuration,
|
||||||
|
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||||
|
}
|
||||||
|
|
||||||
private Commander buildCommanderObjectWithDB() {
|
private Commander buildCommanderObjectWithDB() {
|
||||||
return buildCommanderObjectWithoutDB(false, false, new IllegalStateException());
|
return buildCommanderObjectWithoutDB(false, false, new IllegalStateException());
|
||||||
}
|
}
|
||||||
@ -145,22 +187,65 @@ class CommanderTest {
|
|||||||
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
queueTime, queueTaskTime, paymentTime, messageTime, employeeTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sleep(long millis) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(millis);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
//no-op
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPlaceOrder() throws Exception {
|
void testPlaceOrder() throws Exception {
|
||||||
Commander c = buildCommanderObject();
|
Commander c = buildCommanderObject(true);
|
||||||
var order = new Order(new User("K", "J"), "pen", 1f);
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
c.placeOrder(order);
|
c.placeOrder(order);
|
||||||
assertFalse(StringUtils.isBlank(order.id));
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPlaceOrderNoException() throws Exception {
|
void testPlaceOrder2() throws Exception {
|
||||||
Commander c = buildCommanderObjectNoException();
|
Commander c = buildCommanderObject(false);
|
||||||
var order = new Order(new User("K", "J"), "pen", 1f);
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
c.placeOrder(order);
|
c.placeOrder(order);
|
||||||
assertFalse(StringUtils.isBlank(order.id));
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPlaceOrderNoException1() throws Exception {
|
||||||
|
Commander c = buildCommanderObjectNoPaymentException1();
|
||||||
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
|
c.placeOrder(order);
|
||||||
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPlaceOrderNoException2() throws Exception {
|
||||||
|
Commander c = buildCommanderObjectNoPaymentException2();
|
||||||
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
|
c.placeOrder(order);
|
||||||
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPlaceOrderNoException3() throws Exception {
|
||||||
|
Commander c = buildCommanderObjectNoPaymentException3();
|
||||||
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
|
c.placeOrder(order);
|
||||||
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPlaceOrderNoException4() throws Exception {
|
||||||
|
Commander c = buildCommanderObjectNoPaymentException3();
|
||||||
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
|
sleep(queueTaskTime / 10);
|
||||||
|
c.placeOrder(order);
|
||||||
|
c.placeOrder(order);
|
||||||
|
c.placeOrder(order);
|
||||||
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPlaceOrderUnknownException() throws Exception {
|
void testPlaceOrderUnknownException() throws Exception {
|
||||||
Commander c = buildCommanderObjectUnknownException();
|
Commander c = buildCommanderObjectUnknownException();
|
||||||
@ -171,18 +256,36 @@ class CommanderTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPlaceOrderShortDuration() throws Exception {
|
void testPlaceOrderShortDuration() throws Exception {
|
||||||
Commander c = buildCommanderObject();
|
Commander c = buildCommanderObject(true);
|
||||||
var order = new Order(new User("K", "J"), "pen", 1f);
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
Thread.sleep(paymentTime);
|
sleep(paymentTime);
|
||||||
|
c.placeOrder(order);
|
||||||
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPlaceOrderShortDuration2() throws Exception {
|
||||||
|
Commander c = buildCommanderObject(false);
|
||||||
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
|
sleep(paymentTime);
|
||||||
c.placeOrder(order);
|
c.placeOrder(order);
|
||||||
assertFalse(StringUtils.isBlank(order.id));
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPlaceOrderNoExceptionShortMsgDuration() throws Exception {
|
void testPlaceOrderNoExceptionShortMsgDuration() throws Exception {
|
||||||
Commander c = buildCommanderObjectNoException();
|
Commander c = buildCommanderObjectNoPaymentException1();
|
||||||
var order = new Order(new User("K", "J"), "pen", 1f);
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
Thread.sleep(messageTime);
|
sleep(messageTime);
|
||||||
|
c.placeOrder(order);
|
||||||
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPlaceOrderNoExceptionShortQueueDuration() throws Exception {
|
||||||
|
Commander c = buildCommanderObjectUnknownException();
|
||||||
|
var order = new Order(new User("K", "J"), "pen", 1f);
|
||||||
|
sleep(queueTime);
|
||||||
c.placeOrder(order);
|
c.placeOrder(order);
|
||||||
assertFalse(StringUtils.isBlank(order.id));
|
assertFalse(StringUtils.isBlank(order.id));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user