예제 #1
0
    def test_closed_invalid_events(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)

        event_q.put(CARD_INSERT)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(CARD_REMOVE)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(BUTTON_CANCEL)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(BUTTON_MONEY)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(BUTTON_CHANGE_POD)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(BUTTON_DISCHARGE_USER)
        event_q.put(BUTTON_CONFIRM)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.CLOSED
        print
예제 #2
0
    def test_signin_signout_separate(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)

        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_SWIPE_CERTIFIED)
        event_q.put(CARD_INSERT)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_SWIPE_CERTIFIED)
        event_q.put(CARD_INSERT_OTHER)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_REMOVE)
        event_q.put(BUTTON_DISCHARGE_USER)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_REMOVE_OTHER)
        event_q.put(BUTTON_DISCHARGE_USER)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.STANDBY
        print
    def test_clear_debt_success(self):
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()

        user = shop_user_db.get_shop_user(
            sample_users.USER_CERTIFIED.id_number)
        shop_user_db.increase_debt(user)
        shop_user_db.clear_debt(user)

        assert user.debt == 0
    def test_get_nonexistent_user(self):
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()

        try:
            shop_user_db.get_shop_user(sample_users.USER_INVALID.id_number)
        except shop_check_in_exceptions.NonexistentUserError:
            assert True
        else:
            assert False
    def test_increase_debt_success(self):
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()

        user = shop_user_db.get_shop_user(
            sample_users.USER_CERTIFIED.id_number)

        user_debt = user.debt + shop_user_database.DEBT_INCREMENT
        shop_user_db.increase_debt(user)

        assert user_debt == user.debt
    def test_clear_debt_failure(self):
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()

        user = sample_users.USER_INVALID

        try:
            shop_user_db.clear_debt(user)
        except shop_check_in_exceptions.NonexistentUserError:
            assert True
        else:
            assert False
    def test_get_real_user(self):
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()

        user = shop_user_db.get_shop_user(
            sample_users.USER_CERTIFIED.id_number)

        assert user.id_number == sample_users.USER_CERTIFIED.id_number
        assert user.name == sample_users.USER_CERTIFIED.name
        assert user.email == sample_users.USER_CERTIFIED.email
        assert user._test_date == sample_users.USER_CERTIFIED._test_date
        assert user.debt == sample_users.USER_CERTIFIED.debt
        assert user._proctor == sample_users.USER_CERTIFIED._proctor
        assert user == sample_users.USER_CERTIFIED
예제 #8
0
    def test_open_shop(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.STANDBY
        print
예제 #9
0
    def test_cancel_opening(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(BUTTON_CANCEL)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.CLOSED
        print
예제 #10
0
    def test_unlock_try_add_pod_to_machine(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)

        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.UNLOCKED
        print
예제 #11
0
    def test_unlock_change_pod(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(BUTTON_CHANGE_POD)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.CHANGING_POD
        print
예제 #12
0
    def test_unlock_remove(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_REMOVE)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.REMOVING_USER
        print
예제 #13
0
    def test_clearing_debt_valid_swipe(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(BUTTON_MONEY)
        event_q.put(CARD_SWIPE_CERTIFIED)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.STANDBY
        print
예제 #14
0
    def test_unlock_add_user_swipe(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_SWIPE_PROCTOR)
        event_q.put(CARD_SWIPE_CERTIFIED)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.ADDING_USERS
        print
예제 #15
0
    def test_unlock_add_two_users_cancel(self):
        event_q = queue.Queue()
        message_q = queue.Queue()
        shop_user_db = shop_user_database.ShopUserDatabaseTesting()
        board = fsm.BoardFsm(event_q, message_q, shop_user_db)
        
        event_q.put(CARD_SWIPE_POD)
        event_q.put(SWITCH_FLIP_ON)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_SWIPE_POD)
        event_q.put(CARD_SWIPE_CERTIFIED)
        event_q.put(BUTTON_CANCEL)
        event_q.put(TERMINATE_PROGRAM)

        print "\n"
        end_state = board.run_fsm()
        assert end_state == fsm.STANDBY
        print
예제 #16
0
 def __init__(self):
     self._event_q = queue.Queue()
     self._message_q = queue.Queue()
     self._shop_user_db = shop_user_database.ShopUserDatabaseTesting()
     self._board = fsm.BoardFsm(self._event_q, self._message_q,
                                self._shop_user_db)