Added CircularBufferWithNestedCircularBuffer test

This commit is contained in:
Sviatoslav Tsariov Yurievich 2024-05-13 17:52:03 +03:00
parent 1805e4c7ad
commit 44bea612ff

View File

@ -74,3 +74,44 @@ TEST_F(CircularBufferTest, FullAndEmpty) {
// Try popping from an empty buffer
EXPECT_EQ(buffer->popFront(item), ErrorCode::BUFFER_EMPTY);
}
// Test CircularBuffer with nested CircularBuffer
TEST_F(CircularBufferTest, CircularBufferWithNestedCircularBuffer) {
CircularBuffer<CircularBuffer<char>*> charBuffer(2);
CircularBuffer<char> charSubBuffer1(3);
CircularBuffer<char> charSubBuffer2(3);
EXPECT_EQ(charSubBuffer1.pushBack('a'), ErrorCode::SUCCESS);
EXPECT_EQ(charSubBuffer1.pushBack('b'), ErrorCode::SUCCESS);
EXPECT_EQ(charSubBuffer1.pushBack('c'), ErrorCode::SUCCESS);
EXPECT_EQ(charSubBuffer2.pushBack('d'), ErrorCode::SUCCESS);
EXPECT_EQ(charSubBuffer2.pushBack('e'), ErrorCode::SUCCESS);
EXPECT_EQ(charSubBuffer2.pushBack('f'), ErrorCode::SUCCESS);
EXPECT_EQ(charBuffer.pushBack(&charSubBuffer1), ErrorCode::SUCCESS);
EXPECT_EQ(charBuffer.pushBack(&charSubBuffer2), ErrorCode::SUCCESS);
CircularBuffer<char>* poppedCharSubBuffer;
EXPECT_EQ(charBuffer.popFront(poppedCharSubBuffer), ErrorCode::SUCCESS);
EXPECT_EQ(poppedCharSubBuffer, &charSubBuffer1);
char c;
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
EXPECT_EQ(c, 'a');
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
EXPECT_EQ(c, 'b');
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
EXPECT_EQ(c, 'c');
EXPECT_EQ(charBuffer.popFront(poppedCharSubBuffer), ErrorCode::SUCCESS);
EXPECT_EQ(poppedCharSubBuffer, &charSubBuffer2);
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
EXPECT_EQ(c, 'd');
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
EXPECT_EQ(c, 'e');
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
EXPECT_EQ(c, 'f');
}