package lab.util; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; public class CheckoutLineTest { @Rule public Timeout globalTimeout = new Timeout(500); @Test public void testCtor() { CheckoutLine c = new CheckoutLine(); assertNotNull("queue should not be null", c.getQueue()); assertTrue("queue should be empty", c.getQueue().isEmpty()); } @Test public void testHasCustomers() { CheckoutLine c = new CheckoutLine(); assertFalse("checkout line should have no customers", c.hasCustomers()); c.addCustomer(new Customer(0, new Random())); assertTrue("checkout line should have a customer", c.hasCustomers()); } @Test public void testGetNumberOfCustomers() { CheckoutLine c = new CheckoutLine(); assertEquals("", 0, c.getNumberOfCustomers()); c.addCustomer(new Customer(0, new Random())); assertEquals("checkout line should have 1 customer", 1, c.getNumberOfCustomers()); c.addCustomer(new Customer(0, new Random())); assertEquals("checkout line should have 2 customer", 2, c.getNumberOfCustomers()); } @Test public void testGetCurrentCustomer() { CheckoutLine c = new CheckoutLine(); assertNull("current customer should be null", c.getCurrentCustomer()); Customer cust = new Customer(0, new Random()); c.addCustomer(cust); assertSame("wrong current customer", cust, c.getCurrentCustomer()); } @Test public void testGetCustomersAsList() { List t = new ArrayList(); CheckoutLine c = new CheckoutLine(); assertEquals("list of customers should be empty", t, c.getCustomersAsList()); Random r = new Random(); t.add(new Customer(0, r)); t.add(new Customer(1, r)); t.add(new Customer(2, r)); c.addCustomer(t.get(0)); c.addCustomer(t.get(1)); c.addCustomer(t.get(2)); assertEquals("list contains the wrong number customers", t.size(), c.getCustomersAsList().size()); assertSame("first customer in list is the wrong customer", t.get(0), c.getCustomersAsList().get(0)); assertSame("second customer in list is the wrong customer", t.get(1), c.getCustomersAsList().get(1)); assertSame("third customer in list is the wrong customer", t.get(2), c.getCustomersAsList().get(2)); } }