def test_single_no_patties_no_buns(system):
    burger = SingleBurger()

    system.add_to_order(burger, 1)

    assert (burger.num_buns() == 0)
    assert (burger.num_patties() == 0)
    assert (burger.get_price() == 1)
    assert (len(burger.get_errors()) == 2)

    assert (len(system.get_orders()) == 1)
    assert (system.get_order(1).get_status() == False)
    assert (system.get_order(1).get_confirmed() == False)
    assert (len(system.get_order(1).get_order_list()) == 0)

    assert (system.get_order(1).total_price() == 0)
def test_single_not_enough_patties(system):
    burger = SingleBurger()
    burger.add_ingredient("Sesame bun", 1)
    burger.add_ingredient("Muffin bun", 1)

    system.add_to_order(burger, 1)

    assert (burger.num_buns() == 2)
    assert (burger.num_patties() == 0)
    assert (burger.get_price() == 3)
    assert (len(burger.get_errors()) == 1)

    assert (len(system.get_orders()) == 1)
    assert (system.get_order(1).get_status() == False)
    assert (system.get_order(1).get_confirmed() == False)
    assert (len(system.get_order(1).get_order_list()) == 0)

    assert (system.get_order(1).total_price() == 0)
def test_successful_single_burger(system):
    burger = SingleBurger()
    burger.add_ingredient("Sesame bun", 1)
    burger.add_ingredient("Muffin bun", 1)
    burger.add_ingredient("Beef patty", 1)

    system.add_to_order(burger, 1)

    assert (burger.num_buns() == 2)
    assert (burger.num_patties() == 1)
    assert (burger.get_price() == 5)
    assert (burger.is_valid_main())

    assert (len(system.get_orders()) == 1)
    assert (len(system.get_order(1).get_order_list()) == 1)
    assert (system.get_order(1).get_status() == False)
    assert (system.get_order(1).get_confirmed() == False)

    assert (system.get_order(1).total_price() == 5)