def test_regular_customer_coming_test() -> None:
    line = RegularLine(3)
    c1 = Customer("John", [Item("milk", 2), Item("lid", 1), Item("fan", 3)])
    c2 = Customer("Jim", [Item("milk", 2), Item("lid", 1), Item("fan", 3)])
    c3 = Customer("Jon", [Item("milk", 2), Item("lid", 1), Item("fan", 3)])
    c4 = Customer("James", [Item("milk", 2), Item("lid", 1), Item("fan", 3)])
    c5 = Customer("Janice", [Item("milk", 2), Item("lid", 1), Item("fan", 3)])
    for item in [c1, c2, c3, c4, c5]:
        assert line.can_accept(item)
    line.close()
    for item in [c1, c2, c3, c4, c5]:
        assert not line.can_accept(item)
Beispiel #2
0
def test_close_line_people_in_line() -> None:
    """check close line with people in line"""
    customer1 = Customer("bruce", [])
    customer2 = Customer("tom", [])
    customer3 = Customer("mary", [])
    line1 = RegularLine(3)
    assert line1.accept(customer1) is True
    assert line1.accept(customer2) is True
    assert line1.accept(customer3) is True
    assert line1.close() == [customer2, customer3]
    assert line1.is_open is False
    assert line1.queue == [customer1]
    assert line1.can_accept(customer2) is False
    line2 = ExpressLine(3)
    assert line2.accept(customer1) is True
    assert line2.accept(customer2) is True
    assert line2.accept(customer3) is True
    assert line2.close() == [customer2, customer3]
    assert line2.is_open is False
    assert line2.queue == [customer1]
    assert line2.can_accept(customer2) is False
    line3 = SelfServeLine(3)
    assert line3.accept(customer1) is True
    assert line3.accept(customer2) is True
    assert line3.accept(customer3) is True
    assert line3.close() == [customer2, customer3]
    assert line3.is_open is False
    assert line3.queue == [customer1]
    assert line3.can_accept(customer2) is False
def test_regular_empty_line_close() -> None:
    line = RegularLine(3)
    initial_state = line.is_open
    lst = line.close()
    assert len(lst) == 0
    assert initial_state is True
    assert line.is_open is False
def test_close_line_one_customer() -> None:
    """ Test whether close line returns customers when only one customer
    is in the line."""
    line = RegularLine(4)
    items = [Item('Bananas', 6)]
    c1 = Customer('Alice', items)
    line.accept(c1)
    assert line.close() == []
def test_close_one_customer() -> None:
    """ Test whether customers are returned when a line with one customer
    closes."""
    line = RegularLine(3)
    item_list = [Item('bananas', 1)]
    jeff = Customer('Jeff', item_list)
    line.accept(jeff)
    assert line.close() == []
Beispiel #6
0
def test_close_line_no_one_in_line() -> None:
    """check close line with no one in line"""
    line1 = RegularLine(3)
    assert line1.close() == []
    assert line1.is_open is False
    line2 = ExpressLine(3)
    assert line2.close() == []
    assert line2.is_open is False
    line3 = SelfServeLine(3)
    assert line3.close() == []
    assert line3.is_open is False
def test_close_many_customers() -> None:
    """ Test whether correct customers are returned when line with more than
    one customer closes."""
    line = RegularLine(3)
    item_list = [Item('bananas', 1)]
    jeff = Customer('Jeff', item_list)
    item_list_2 = [Item('apples', 2)]
    sofia = Customer('Sofia', item_list_2)
    item_list_3 = [Item('kiwis', 1)]
    aela = Customer('Aela', item_list_3)
    line.accept(jeff)
    line.accept(sofia)
    line.accept(aela)
    moved_customers = line.close()
    assert moved_customers == [sofia, aela]
Beispiel #8
0
def test_close_line_one_customer_in_line() -> None:
    """check close line with one customer in line"""
    customer1 = Customer("bruce", [])
    line1 = RegularLine(3)
    assert line1.accept(customer1) is True
    assert line1.close() == []
    assert line1.is_open is False
    line2 = ExpressLine(3)
    assert line2.accept(customer1) is True
    assert line2.close() == []
    assert line2.is_open is False
    line3 = SelfServeLine(3)
    assert line3.accept(customer1) is True
    assert line3.close() == []
    assert line3.is_open is False
Beispiel #9
0
def test_close() -> None:
    """Test the close function of the Checkout Class."""
    a = RegularLine(3)
    b = ExpressLine(3)
    c = SelfServeLine(3)
    c1 = Customer('A', [Item('bananas', 7)])
    c2 = Customer('B', [Item('apple', 2)])
    c3 = Customer('C', [Item('orange', 5)])
    c4 = Customer('D', [Item('grapes', 10)])
    a.queue = [c1]
    b.queue = [c2, c3, c4]
    assert a.close() == [] and a.is_open == False
    assert b.close() == [c3, c4] and a.is_open == False
    assert c.close() == [] and a.is_open == False
    assert a.queue == [c1]
    assert b.queue == [c2]
    assert c.queue == []
def test_regular_close_test() -> None:
    line = RegularLine(4)
    c1 = Customer("John", [Item("milk", 2), Item("lid", 1), Item("fan", 3)])
    c2 = Customer("Jim", [Item("milk", 3), Item("lid", 1), Item("fan", 3)])
    c5 = Customer("James", [Item("milk", 32), Item("lid", 1), Item("fan", 3)])
    c6 = Customer("Janice", [Item("milk", 42), Item("lid", 1), Item("fan", 3)])
    counter = 1
    for item in [c1, c2, c5, c6]:
        if counter <= 3:
            assert line.can_accept(item)
            assert line.accept(item)
        if counter == 3:
            assert len(line.queue) == 3
            assert line.queue[0] is c1
            assert line.queue[1] is c2
            assert line.queue[2] is c5
            assert line.close() == [c2, c5]
            assert c1 in line.queue
            assert len(line.queue) == 1
            assert line.queue[0] == c1
        if counter > 3:
            assert not line.can_accept(item)
            assert not line.accept(item)
        counter += 1
def test_close_line_no_customers() -> None:
    """ Test whether close line returns customers when no customers
    are in the line."""
    line = RegularLine(4)
    assert line.close() == []
def test_close_no_customers() -> None:
    """ Test whether customers are returned when empty line closes."""
    line = RegularLine(3)
    assert line.close() == []