コード例 #1
0
from gumballmachine import State, Message, push

current_state = State.wait_for_coin
current_message = Message.insert_coin

print("Gum Ball Machine 2021 \n")

print("[1] Insert Coin, [2] Request Gum, [3] Get Item, [Other] Exit")

while True:
    selection = input("Please Choose Message: ")
    if selection == "1":
        print("[1] Insert Coin")
        current_message = Message.insert_coin
    elif selection == "2":
        print("[2] Request Gum")
        current_message = Message.request_gum
    elif selection == "3":
        print("[3] Get Item")
        current_message = Message.item_out
    else:
        print("[Other] Exit")
        break

    new_state = push(current_state, current_message)
    print(new_state)
    current_state = new_state
コード例 #2
0
 def testRequestGumLeadsToCoinOutOrGumOut(self):
     result = push(State.coin_in, Message.request_gum)
     self.assertIn(result, {State.gum_out, State.coin_out})
コード例 #3
0
 def testWrongInputLeadsToSameState(self):
     result = push(State.gum_out, Message.insert_coin)
     self.assertEqual(result, State.gum_out)
コード例 #4
0
 def testCoinLeadsToCoinIn(self):
     result = push(State.wait_for_coin, Message.insert_coin)
     self.assertEqual(result, State.coin_in)
コード例 #5
0
 def testGumOutLeadsToWaitForCoin(self):
     result = push(State.gum_out, Message.item_out)
     self.assertEqual(result, State.wait_for_coin)