#pragma once #ifndef BLOCKS_MESSMER_BLOCKSTORE_TEST_IMPLEMENTATIONS_CACHING_CACHE_TESTUTILS_QUEUEMAPTEST_H_ #define BLOCKS_MESSMER_BLOCKSTORE_TEST_IMPLEMENTATIONS_CACHING_CACHE_TESTUTILS_QUEUEMAPTEST_H_ #include #include #include "../../../../../implementations/caching/cache/QueueMap.h" #include "MinimalKeyType.h" #include "MinimalValueType.h" #include // This class is a parent class for tests on QueueMap. // It offers functions to work with a QueueMap test object which is built using types having only the minimal type requirements. // Furthermore, the class checks that there are no memory leaks left after destructing the QueueMap (by counting leftover instances of Keys/Values). class QueueMapTest: public ::testing::Test { public: QueueMapTest(); ~QueueMapTest(); void push(int key, int value); boost::optional pop(); boost::optional pop(int key); boost::optional peek(); int size(); private: std::unique_ptr> _map; }; #endif