def test_stoppedIdSwiped(self): CuT = StateManager.StateManager() CuT.setStateByName("Stopped") CuT.idSwiped(self.testUser) self.assertEqual(CuT.getState().getName(), "Stopped", "State is incorrect.")
def test_toggleAccessTypeEmergencyButtonReleased(self): CuT = StateManager.StateManager() CuT.setStateByName("ToggleAccessType") CuT.emergencyStopButtonReleased() self.assertEqual(CuT.getState().getName(), "ToggleAccessType", "State is incorrect.")
def test_stoppedEmergencyButtonReleased(self): CuT = StateManager.StateManager() CuT.setStateByName("Stopped") CuT.emergencyStopButtonReleased() self.assertEqual(CuT.getState().getName(), "Inactive", "State is incorrect.")
def test_toggleAccessTypePromptIdSwiped(self): CuT = StateManager.StateManager() CuT.setStateByName("ToggleAccessTypePrompt") CuT.idSwiped(self.testUser) self.assertEqual(CuT.getState().getName(), "Stopped", "State is incorrect.")
def test_activeIdSwiped(self): CuT = StateManager.StateManager() CuT.setStateByName("Active") CuT.idSwiped(self.testUser) self.assertEqual(CuT.getState().getName(), "Active", "State is incorrect.")
def test_activeEmergencyButtonPressed(self): CuT = StateManager.StateManager() CuT.setStateByName("Active") CuT.emergencyStopButtonPressed() self.assertEqual(CuT.getState().getName(), "Stopped", "State is incorrect.")
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()
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.")
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.")
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.")
def emergencyStopChanged(self,pressed): if pressed: StateManager.emergencyStopButtonPressed() else: StateManager.emergencyStopButtonReleased()
def idSwiped(self,id): StateManager.idSwiped(DatabaseManager.getUser(id))
def test_getState(self): CuT = StateManager.StateManager() self.assertEqual(CuT.getState().getName(), "Stopped", "Initial state is incorrect.")
def test_constructor(self): StateManager.StateManager()
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.")