65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
| #include "unit-tests.h"
 | |
| #include <test/mocks/test-mocks_SerialMock.h>
 | |
| 
 | |
| BEGIN_UNNAMED_NAMESPACE
 | |
| 
 | |
| USING_NAMESPACE_TEST_MOCKS
 | |
| using namespace testing;
 | |
| 
 | |
| TEST(RingBuffer, initialState)
 | |
| {
 | |
|     typedef RingBuffer<uint8, 32> Buffer;
 | |
|     Buffer buffer;
 | |
|     EXPECT_EQ(buffer.getLength(), 0);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   true);
 | |
|     buffer.clear();
 | |
|     EXPECT_EQ(buffer.getLength(), 0);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   true);
 | |
| }
 | |
| 
 | |
| TEST(RingBuffer, uint8)
 | |
| {
 | |
|     typedef RingBuffer<uint8, 8> Buffer;
 | |
|     Buffer buffer;
 | |
| 
 | |
|     buffer.write(42);
 | |
|     EXPECT_EQ(buffer.getLength(), 1);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   false);
 | |
| 
 | |
|     const uint8 read = buffer.read();
 | |
|     EXPECT_EQ(read, 42);
 | |
|     EXPECT_EQ(buffer.getLength(), 0);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   true);
 | |
| 
 | |
|     const uint8 data[] = "Hello, World!";
 | |
|     buffer.write(data, 13);
 | |
|     EXPECT_EQ(buffer.getLength(), 5); // 13 % 8
 | |
|     EXPECT_EQ(buffer.isEmpty(), false);
 | |
| 
 | |
|     uint8 output[8] = { 0 };
 | |
|     buffer.read(output, 8);
 | |
|     const uint8 expected[8] = {
 | |
|         'o', 'r', 'l', 'd', '!', ',', ' ', 'W',
 | |
|     };
 | |
|     EXPECT_THAT(output, ContainerEq(expected));
 | |
| 
 | |
|     buffer.clear();
 | |
|     EXPECT_EQ(buffer.getLength(), 0);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   true);
 | |
| }
 | |
| 
 | |
| TEST(RingBuffer, uint32)
 | |
| {
 | |
|     typedef RingBuffer<uint32_t, 32> Buffer;
 | |
|     Buffer buffer;
 | |
|     buffer.write(42);
 | |
|     EXPECT_EQ(buffer.getLength(), 1);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   false);
 | |
|     const uint8 read = buffer.read();
 | |
|     EXPECT_EQ(read, 42);
 | |
|     EXPECT_EQ(buffer.getLength(), 0);
 | |
|     EXPECT_EQ(buffer.isEmpty(),   true);
 | |
| }
 | |
| 
 | |
| END_UNNAMED_NAMESPACE
 |