Skip to content

Commit

Permalink
ut
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewturner committed Feb 25, 2023
1 parent 9528c16 commit 0a3f2e4
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 15 deletions.
4 changes: 3 additions & 1 deletion src/EvtContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ EvtContext::EvtContext()

void EvtContext::loopIteration()
{
for (int i = 0; i < _listenerCount; i++)
printf("111111111\n");
for (byte i = 0; i < _listenerCount; i++)
{
printf("111111111\n");
if (_listeners[i])
{
if (_listeners[i]->isEventTriggered())
Expand Down
3 changes: 1 addition & 2 deletions src/EvtListener.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ class EvtContext;
class EvtListener
{
public:
void *_extraData = 0;
EvtAction _triggerAction;
bool _enabled = true;

virtual void setupListener();
virtual bool isEventTriggered();
Expand All @@ -27,6 +25,7 @@ class EvtListener
virtual ~EvtListener();

protected:
bool _enabled = true;
};

#endif
23 changes: 12 additions & 11 deletions src/EvtManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,46 @@

EvtManager::EvtManager()
{
_contextStack = new EvtContext[EVENTUALLY_MAX_CONTEXTS];
_contextStack[_contextOffset].setupContext();
_contextStack[_contextOffset] = new EvtContext();
_contextStack[_contextOffset]->setupContext();
}

void EvtManager::addListener(EvtListener *lstn)
{
_contextStack[_contextOffset].addListener(lstn);
printf("111111111\n");
_contextStack[_contextOffset]->addListener(lstn);
}

void EvtManager::removeListener(EvtListener *lstn)
{
_contextStack[_contextOffset].removeListener(lstn);
_contextStack[_contextOffset]->removeListener(lstn);
}

EvtContext *EvtManager::currentContext()
{
return &_contextStack[_contextOffset];
return _contextStack[_contextOffset];
}

EvtContext *EvtManager::pushContext()
{
_contextOffset++;
_contextStack[_contextOffset].setupContext();
return &_contextStack[_contextOffset];
_contextStack[_contextOffset]->setupContext();
return _contextStack[_contextOffset];
}

EvtContext *EvtManager::resetContext()
{
_contextStack[_contextOffset].setupContext();
return &_contextStack[_contextOffset];
_contextStack[_contextOffset]->setupContext();
return _contextStack[_contextOffset];
}

EvtContext *EvtManager::popContext()
{
_contextOffset--;
return &_contextStack[_contextOffset];
return _contextStack[_contextOffset];
}

void EvtManager::loopIteration()
{
_contextStack[_contextOffset].loopIteration();
_contextStack[_contextOffset]->loopIteration();
}
2 changes: 1 addition & 1 deletion src/EvtManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class EvtManager
void removeListener(EvtListener *lstn);

private:
EvtContext *_contextStack = 0;
EvtContext *_contextStack[EVENTUALLY_MAX_CONTEXTS];
byte _contextOffset = 0;
byte _contextDepth = 0;
};
Expand Down
12 changes: 12 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include "main.h"

EvtManager mgr;

void setup()
{
}

void loop()
{
mgr.loopIteration();
}
1 change: 1 addition & 0 deletions src/main.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include "Eventually.h"
37 changes: 37 additions & 0 deletions test/test_evt_manager/test_evt_manager.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include <ArduinoFake.h>
#include <unity.h>

#include "EvtManager.h"

using namespace fakeit;

EvtManager target;
Mock<EvtListener> listenerMock;

void setUp(void)
{
When(Method(listenerMock, setupListener)).AlwaysReturn();
When(Method(listenerMock, isEventTriggered)).AlwaysReturn(true);
When(Method(listenerMock, performTriggerAction)).AlwaysReturn();
}

void tearDown(void)
{
listenerMock.Reset();
}

void test_default_to_one_context(void)
{
EvtListener &listener = listenerMock.get();
target.addListener(&listener);
target.loopIteration();
}

int main(int argc, char **argv)
{
UNITY_BEGIN();
RUN_TEST(test_default_to_one_context);
UNITY_END();

return 0;
}

0 comments on commit 0a3f2e4

Please sign in to comment.