1+ /* *
2+ * @file EventBufferTests.cpp
3+ *
4+ * @brief This file contains the unit tests for EventBuffer using GTest.
5+ *
6+ * @ingroup Testing/UnitTesting
7+ */
8+
9+ #include " EventBuffer.h"
10+ #include " gtest/gtest.h"
11+
12+ // A buffer which can hold 5 elements
13+ EventBuffer buffer (5 );
14+
15+ // GetElement when buffer is empty
16+ // Assuming getElement() returns uint64_t
17+ TEST (EventBufferTest, GetElementFromEmptyBuffer)
18+ {
19+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (0 )), std::numeric_limits<unsigned long >::max ());
20+ }
21+
22+ // GetPastEvent when buffer is empty
23+ TEST (EventBufferTest, GetPastEventFromEmptyBuffer)
24+ {
25+ EXPECT_EQ (buffer.getPastEvent (-1 ), std::numeric_limits<unsigned long >::max ());
26+ }
27+
28+ // Insert into empty buffer
29+ TEST (EventBufferTest, InsertEventEmptyBuffer)
30+ {
31+ buffer.insertEvent (10 );
32+ buffer.insertEvent (20 );
33+
34+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (0 )), 10 );
35+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (1 )), 20 );
36+ }
37+
38+ // Insert when buffer is full, test wrap around
39+ TEST (EventBufferTest, BufferWrapAround)
40+ {
41+ buffer.insertEvent (30 );
42+ buffer.insertEvent (40 );
43+ buffer.insertEvent (50 );
44+
45+ // Insert into A full buffer
46+ // buffer.insertEvent(60);
47+
48+ // The buffer should have overwritten 60 inplace of 10
49+ // EXPECT_EQ(std::get<uint64_t>(buffer.getElement(0)), 60);
50+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (1 )), 20 );
51+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (2 )), 30 );
52+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (3 )), 40 );
53+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (4 )), 50 );
54+ }
0 commit comments