Просмотр исходного кода

Added a mock for the message buffer interface.

Bart Hertog 6 лет назад
Родитель
Сommit
8a58f53ec9
3 измененных файлов с 45 добавлено и 5 удалено
  1. 4 3
      CMakeLists.txt
  2. 37 0
      test/mock/MessageBufferMock.h
  3. 4 2
      test/test_main.cpp

+ 4 - 3
CMakeLists.txt

@@ -12,8 +12,9 @@ file(GLOB src_files
     "build/EAMS/*cpp"
 )
 
-include_directories(test src build/EAMS)
-include_directories(external/googletest/googletest external/googletest/googletest/include)
+include_directories(test test/mock src build/EAMS)
+include_directories(external/googletest/googletest external/googletest/googletest/include
+                    external/googletest/googlemock external/googletest/googlemock/include)
 
 add_executable(test_EmbeddedProto ${src_files})
-target_link_libraries(test_EmbeddedProto gtest)
+target_link_libraries(test_EmbeddedProto gtest gmock)

+ 37 - 0
test/mock/MessageBufferMock.h

@@ -0,0 +1,37 @@
+
+
+#ifndef _MESSAGE_BUFFER_MOCK_H_
+#define _MESSAGE_BUFFER_MOCK_H_
+
+#include <gmock/gmock.h>
+
+#include <MessageBufferInterface.h>
+
+namespace Mocks
+{
+
+  class MessageBufferMock : public EmbeddedProto::MessageBufferInterface
+  {
+    public:
+
+      MOCK_METHOD0(clear, void());
+
+      MOCK_CONST_METHOD0(get_size, uint32_t());
+      MOCK_CONST_METHOD0(get_max_size, uint32_t());
+      
+      MOCK_METHOD1(push, bool(uint8_t));
+      MOCK_METHOD2(push, bool(uint8_t*, uint32_t));
+      
+      MOCK_CONST_METHOD1(peak, bool(uint8_t&));
+      MOCK_CONST_METHOD0(peak, uint8_t());
+
+      MOCK_METHOD0(advance, void());
+      MOCK_METHOD1(advance, void(uint32_t));
+      
+      MOCK_METHOD1(pop, bool(uint8_t&));
+      MOCK_METHOD0(pop, uint8_t());
+  };
+
+} // End of namespace Mocks
+
+#endif // End of _MESSAGE_BUFFER_MOCK_H_

+ 4 - 2
test/test_main.cpp

@@ -1,7 +1,9 @@
 #include <gtest/gtest.h>
+#include <gmock/gmock.h>
 
 int main(int argc, char **argv) {
-    ::testing::InitGoogleTest(&argc, argv);
-    return RUN_ALL_TESTS();
+  ::testing::InitGoogleTest(&argc, argv);
+  ::testing::InitGoogleMock(&argc, argv);
+  return RUN_ALL_TESTS();
 }