コード例 #1
0
    def test_stoppedIdSwiped(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("Stopped")
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "Stopped",
                         "State is incorrect.")
コード例 #2
0
    def test_toggleAccessTypeEmergencyButtonReleased(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("ToggleAccessType")
        CuT.emergencyStopButtonReleased()
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
コード例 #3
0
    def test_stoppedEmergencyButtonReleased(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("Stopped")
        CuT.emergencyStopButtonReleased()
        self.assertEqual(CuT.getState().getName(), "Inactive",
                         "State is incorrect.")
コード例 #4
0
    def test_toggleAccessTypePromptIdSwiped(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("ToggleAccessTypePrompt")
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "Stopped",
                         "State is incorrect.")
コード例 #5
0
    def test_activeIdSwiped(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("Active")
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "Active",
                         "State is incorrect.")
コード例 #6
0
    def test_activeEmergencyButtonPressed(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("Active")
        CuT.emergencyStopButtonPressed()
        self.assertEqual(CuT.getState().getName(), "Stopped",
                         "State is incorrect.")
コード例 #7
0
	def __init__(self,screen,leds,cardReader,emergencyStopButton,buzzer,relay):
		# Store the hardware.
		self.screen = screen
		self.leds = leds
		self.cardReader = cardReader
		self.emergencyStopButton = emergencyStopButton
		self.buzzer = buzzer
		self.relay = relay

		# Set up the observers.
		self.cardReader.register(CardReaderObserver(self))
		self.emergencyStopButton.register(EmergencyStopButtonObserver(self))
		StateManager.register(StateObserver(self))
		SessionManager.register(SessionObserver(self))
		MessageManager.register(MessageObserver(self))
		StateManager.staticStateManager.states["ToggleAccessType"].register(AccessTypeStateChanges(self))

		# Send the initial state for the e-stop.
		if self.emergencyStopButton.isPressed():
			StateManager.emergencyStopButtonPressed()
		else:
			StateManager.emergencyStopButtonReleased()

		# Set up the rest of the initial states.
		self.currentSession = None
		self.stateChanged(StateManager.getState())
		self.sessionChanged(None)
		self.messageChanged("")

		# Set up the timer threads.
		self.sessionTimerThread = SessionTimer(self)
		self.sessionTimerThread.start()
コード例 #8
0
    def test_sessionExpires(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("Active")
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "Active",
                         "State is incorrect.")
        time.sleep(2)
        self.assertEqual(CuT.getState().getName(), "Inactive",
                         "State is incorrect.")
コード例 #9
0
    def test_activeUnauthorizedIdSwiped(self):
        CuT = StateManager.StateManager()

        CuT.setStateByName("Active")
        CuT.idSwiped(self.testUnauthorizedUser)
        self.assertEqual(MessageManager.getMessage(),
                         MessageManager.UNAUTHORIZED_MESSAGE,
                         "Message is incorrect.")
        self.assertEqual(CuT.getState().getName(), "Active",
                         "State is incorrect.")
コード例 #10
0
    def test_setStateByName(self):
        CuT = StateManager.StateManager()

        # Create an observer.
        class StateObserver(Observer.Observer):
            def notify(self, *args):
                self.observedState = args[0]

            def getNotifiedState(self):
                return self.observedState

        observer = StateObserver()
        CuT.register(observer)
        CuT.setStateByName("Inactive")
        self.assertEqual(CuT.getState().getName(), "Inactive",
                         "Initial state is incorrect.")
        self.assertEqual(observer.getNotifiedState().getName(), "Inactive",
                         "Initial state is incorrect.")
コード例 #11
0
	def emergencyStopChanged(self,pressed):
		if pressed:
			StateManager.emergencyStopButtonPressed()
		else:
			StateManager.emergencyStopButtonReleased()
コード例 #12
0
	def idSwiped(self,id):
		StateManager.idSwiped(DatabaseManager.getUser(id))
コード例 #13
0
 def test_getState(self):
     CuT = StateManager.StateManager()
     self.assertEqual(CuT.getState().getName(), "Stopped",
                      "Initial state is incorrect.")
コード例 #14
0
 def test_constructor(self):
     StateManager.StateManager()
コード例 #15
0
    def test_toggleAccessTypeIdSwiped(self):
        CuT = StateManager.StateManager()

        # Set the initial state.
        state = CuT.states["ToggleAccessType"]
        CuT.setStateByName("ToggleAccessType")
        self.assertEqual(state.currentUser, None, "Initial user is incorrect.")

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(), "AUTHORIZED",
            "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(), "ADMIN",
            "User access type is incorrect.")
        self.testUser = DatabaseManager.getUser(self.testUser.getId())

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(), "ADMIN",
            "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(), "ADMIN",
            "User access type is incorrect.")
        self.testUser = DatabaseManager.getUser(self.testUser.getId())

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(), "ADMIN",
            "User access type is incorrect.")
        self.testUser = DatabaseManager.getUser(self.testUser.getId())

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(), "AUTHORIZED",
            "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(), "ADMIN",
            "User access type is incorrect.")
        self.testUser = DatabaseManager.getUser(self.testUser.getId())

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testUnauthorizedUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testUnauthorizedUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(), "AUTHORIZED",
            "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(), "ADMIN",
            "User access type is incorrect.")

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testAdminUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testAdminUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(), "AUTHORIZED",
            "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(), "ADMIN",
            "User access type is incorrect.")

        # Swipe an id and assert the user and access type are correct.
        CuT.idSwiped(self.testAdminUser)
        self.assertEqual(CuT.getState().getName(), "ToggleAccessType",
                         "State is incorrect.")
        self.assertEqual(state.currentUser, self.testAdminUser.getId(),
                         "User is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000000").getAccessType(), "AUTHORIZED",
            "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000001").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")
        self.assertEqual(
            DatabaseManager.getUser("000000002").getAccessType(),
            "UNAUTHORIZED", "User access type is incorrect.")