Created
July 7, 2018 18:14
-
-
Save Jakemangan/5d4acffd313a4c780874e4bb0b85b268 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package test; | |
import static org.junit.Assert.*; | |
import java.util.ArrayList; | |
import org.junit.Before; | |
import org.junit.Test; | |
import core.BrickOrder; | |
import core.OrderSystem; | |
public class OrderSystemTest { | |
private OrderSystem sys; | |
@Before | |
public void setup() | |
{ | |
sys = new OrderSystem(); | |
sys.getDb().clearDb(); | |
} | |
/* A reference number must be returned after a new order | |
* has been created. | |
*/ | |
@Test | |
public void testCreateOrderReturnsReference() | |
{ | |
assertEquals(sys.createOrder(20), "BRICK1"); | |
} | |
/* | |
* A reference number returned by a created order must be unique | |
* to the order that has just been created. | |
*/ | |
@Test | |
public void testCreateOrderReturnsUniqueReference() | |
{ | |
sys.createOrder(1); | |
sys.createOrder(1); | |
sys.createOrder(1); //Create three orders | |
BrickOrder o = sys.getOrder("BRICK1"); //Get details of first order | |
assertFalse(o.getReferenceNumber().equals("BRICK2")); | |
assertFalse(o.getReferenceNumber().equals("BRICK3")); //Check ref number is unique | |
o = sys.getOrder("BRICK2"); //Get details of second order | |
assertFalse(o.getReferenceNumber().equals("BRICK1")); | |
assertFalse(o.getReferenceNumber().equals("BRICK3")); //Check ref number is unique | |
o = sys.getOrder("BRICK3"); //Get details of third order | |
assertFalse(o.getReferenceNumber().equals("BRICK2")); | |
assertFalse(o.getReferenceNumber().equals("BRICK1")); //Check ref number is unique | |
} | |
/* | |
* Reference numbers of created orders must follow the correct | |
* trend of increasing reference numbers. | |
*/ | |
@Test | |
public void testCreateOrderSetsCorrectReference() | |
{ | |
sys.createOrder(1); | |
sys.createOrder(1); | |
sys.createOrder(1); | |
sys.createOrder(1); | |
sys.createOrder(1); | |
sys.createOrder(1); | |
assertEquals(sys.createOrder(5), "BRICK7"); | |
} | |
/* | |
* Created orders must set the number of bricks within the order object. | |
*/ | |
@Test | |
public void testCreateOrderSetsNumberOfBricks() | |
{ | |
sys.createOrder(15); | |
BrickOrder o = sys.getOrder("BRICK1"); | |
assertEquals(o.getNumberOfBricks(), 15); | |
} | |
/* | |
* If a user tries to attempt to retrieve an order that doesn't | |
* exist or uses an invalid reference number, null is returned. | |
*/ | |
@Test | |
public void testReturnOfInvalidOrderReturnsNothing() | |
{ | |
assertTrue(sys.getOrder("ROCK1") == null); | |
} | |
/* | |
* When a specific reference number is used to retrieve | |
* an order from the database, the correct details of | |
* the order must be returned. | |
*/ | |
@Test | |
public void testOrderDetailsReturnedCorrectly() | |
{ | |
sys.createOrder(50); | |
sys.createOrder(43); | |
sys.createOrder(112); | |
BrickOrder o = sys.getOrder("BRICK2"); | |
assertEquals(o.getReferenceNumber(), "BRICK2"); | |
assertEquals(o.getNumberOfBricks(), 43); | |
} | |
/* | |
* When a "get orders" request is submitted, all of the active orders | |
* are returned in the form of an ArrayList. Each order's specific | |
* details are then accessible via the ArrayList get() method. | |
*/ | |
@Test | |
public void testFullOrderListReturnedCorrectly() | |
{ | |
sys.createOrder(10); | |
sys.createOrder(100); | |
sys.createOrder(1000); //Create three orders | |
ArrayList<BrickOrder> orderList = sys.getOrders(); //Return full order list | |
BrickOrder o = orderList.get(0); | |
assertEquals(o.getReferenceNumber(), "BRICK1"); | |
assertEquals(o.getNumberOfBricks(), 10); | |
o = orderList.get(1); | |
assertEquals(o.getReferenceNumber(), "BRICK2"); | |
assertEquals(o.getNumberOfBricks(), 100); | |
o = orderList.get(2); | |
assertEquals(o.getReferenceNumber(), "BRICK3"); | |
assertEquals(o.getNumberOfBricks(), 1000); | |
} | |
/* | |
* The number of orders created in this session is recorded in | |
* the "createdOrders" variable. Correct function of this variable | |
* is crucial for correct reference number generation This variable | |
* is incremented by 1 each time the createOrder() method is called. | |
* This number does not decrease when orders are removed from the database. | |
*/ | |
@Test | |
public void testOrdersCreatedIncrementsCorrectly() | |
{ | |
assertEquals(sys.getOrdersCreated(), 0); | |
sys.createOrder(1); | |
sys.createOrder(1); | |
sys.createOrder(1); | |
assertEquals(sys.getOrdersCreated(), 3); | |
sys.removeOrder("BRICK2"); | |
sys.removeOrder("BRICK3"); | |
assertEquals(sys.getOrdersCreated(), 3); | |
sys.createOrder(1); | |
assertEquals(sys.getOrdersCreated(), 4); | |
} | |
/* | |
* After an order is successfully updated, the reference | |
* number from the order must be returned. | |
*/ | |
@Test | |
public void testUpdateOrderReturnsCorrectReferenceNumber() | |
{ | |
sys.createOrder(5); | |
assertEquals(sys.updateOrder("BRICK1", 10), "BRICK1"); | |
} | |
@Test | |
public void testUpdateOrderUpdatesOrderDetailsCorrectly() | |
{ | |
sys.createOrder(5); //Create initial order | |
sys.updateOrder("BRICK1", 100); //Update order with matching reference number | |
BrickOrder o = sys.getOrder("BRICK1"); //Pull order information from db | |
assertEquals(o.getNumberOfBricks(), 100); //Ensure order details have been updated. | |
} | |
@Test | |
public void testUpdateOrderHandlesInvalidReferenceNumber() | |
{ | |
sys.createOrder(5); //Create initial order | |
assertEquals(sys.updateOrder("ROCK1", 100), "No order with reference number ROCK1 in database."); //Update order with matching reference number | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment