Browse Source

Extended StateMachine class

- added "getStates" method to StateMachine class
- extended tests for StateMachine class
Patrick-Laptop 4 years ago
parent
commit
7dff0d7986

+ 5 - 0
source/logic/StateMachine.cpp

@@ -37,6 +37,11 @@ std::string ls_std::StateMachine::getName() {
   return this->name;
 }
 
+std::unordered_map<ls_std::StateId, std::shared_ptr<ls_std::State>> ls_std::StateMachine::getStates()
+{
+  return this->states;
+}
+
 bool ls_std::StateMachine::hasState(const StateId &_id)
 {
   return this->_hasState(_id);

+ 1 - 0
source/logic/StateMachine.hpp

@@ -29,6 +29,7 @@ namespace ls_std {
       std::shared_ptr<State> getCurrentState();
       std::vector<ls_std::StateId> getMemory();
       std::string getName();
+      std::unordered_map<StateId, std::shared_ptr<State>> getStates();
       bool hasState(const StateId& _id);
       bool proceed();
       bool setStartState(const StateId& _id);

+ 8 - 0
test/cases/logic/StateMachineTest.cpp

@@ -113,6 +113,14 @@ namespace {
     ASSERT_STREQ("test_machine", stateMachine.getName().c_str());
   }
 
+  TEST_F(StateMachineTest, getStates)
+  {
+    ls_std::StateMachine stateMachine = _createStateMachine();
+
+    ASSERT_TRUE(!stateMachine.getStates().empty());
+    ASSERT_EQ(5, stateMachine.getStates().size());
+  }
+
   TEST_F(StateMachineTest, hasState)
   {
     ls_std::StateMachine stateMachine = _createStateMachine();