Separated tests into different files, added ResetInstance() method to EventManager

This commit is contained in:
EricLiu2000
2019-06-26 11:30:24 -04:00
parent 1dd68eb0d0
commit 4923218d35
6 changed files with 44 additions and 21 deletions
+1 -1
View File
@@ -217,7 +217,7 @@ if(test)
include_directories("${gtest_SOURCE_DIR}/include")
endif()
add_executable(runTests test/main.cpp)
add_executable(runTests test/main.cpp test/eventmanagertest.cpp)
target_link_libraries(runTests gtest gtest_main)
target_link_libraries(runTests icsneocpp)
+4
View File
@@ -11,6 +11,10 @@ EventManager& EventManager::GetInstance() {
return *singleton.get();
}
void EventManager::ResetInstance() {
singleton = nullptr;
}
void EventManager::get(std::vector<APIEvent>& eventOutput, size_t max, EventFilter filter) {
std::lock_guard<std::mutex> lk(mutex);
+1 -1
View File
@@ -12,7 +12,7 @@ std::vector<DeviceType> icsneo::GetSupportedDevices() {
}
size_t icsneo::EventCount(EventFilter filter) {
return EventManager::GetInstance().count(filter);
return EventManager::GetInstance().eventCount(filter);
}
std::vector<APIEvent> icsneo::GetEvents(EventFilter filter, size_t max) {
+6 -2
View File
@@ -17,7 +17,9 @@ class EventManager {
public:
static EventManager& GetInstance();
size_t count(EventFilter filter = EventFilter()) const {
static void ResetInstance();
size_t eventCount(EventFilter filter = EventFilter()) const {
std::lock_guard<std::mutex> lk(mutex);
return count_internal(filter);
};
@@ -61,8 +63,10 @@ public:
size_t getEventLimit() const { return eventLimit; }
private:
EventManager() {}
EventManager() : mutex(), events(), lastUserErrors(), eventLimit(10000) {}
// Used by functions for threadsafety
mutable std::mutex mutex;
+32
View File
@@ -0,0 +1,32 @@
#include "icsneo/icsneocpp.h"
#include "gtest/gtest.h"
using namespace icsneo;
class EventManagerTest : public ::testing::Test {
protected:
void TearDown() override {
EventManager::ResetInstance();
}
};
TEST_F(EventManagerTest, GetLastErrorTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(GetLastError().getType(), APIEvent::Type::OutputTruncated);
auto err = GetLastError();
EXPECT_EQ(err.getType(), APIEvent::Type::NoErrorFound);
EXPECT_EQ(err.getSeverity(), APIEvent::Severity::EventInfo);
}
TEST_F(EventManagerTest, CountTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(EventCount(), 0);
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::EventWarning));
EXPECT_EQ(EventCount(), 1);
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::EventInfo));
EXPECT_EQ(EventCount(), 2);
GetEvents(EventFilter(APIEvent::Severity::EventInfo));
EXPECT_EQ(EventCount(), 1);
GetEvents();
EXPECT_EQ(EventCount(), 0);
}
-17
View File
@@ -1,22 +1,5 @@
#include "icsneo/api/eventmanager.h"
#include "gtest/gtest.h"
using namespace icsneo;
class EventManagerTest : public ::testing::Test {
};
TEST_F(EventManagerTest, GetLastErrorTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(EventManager::GetInstance().getLastError().getType(), APIEvent::Type::OutputTruncated);
}
TEST_F(EventManagerTest, CountTest) {
EventManager::GetInstance().add(APIEvent(APIEvent::Type::OutputTruncated, APIEvent::Severity::Error));
EXPECT_EQ(EventManager::GetInstance().count(), 1);
}
int main(int argc, char** argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();