renderer_test.cxx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // direct_renderer_test.cxx
  3. // graphics-test
  4. //
  5. // Created by Sam Jaffe on 6/1/19.
  6. // Copyright © 2019 Sam Jaffe. All rights reserved.
  7. //
  8. #include <gmock/gmock.h>
  9. #include "../src/renderer_impl.hpp"
  10. #include "game/graphics/renderer.hpp"
  11. #include "game/graphics/vertex.h"
  12. #include "matrix/matrix.hpp"
  13. struct mock_renderer_impl : graphics::renderer_impl {
  14. MOCK_CONST_METHOD0(manager, std::shared_ptr<graphics::manager const>());
  15. MOCK_METHOD3(draw, void(identity<graphics::material>, math::matr4 const &,
  16. std::vector<graphics::vertex> const &));
  17. MOCK_METHOD0(clear, void());
  18. MOCK_METHOD0(flush, void());
  19. };
  20. struct DirectRendererTest : testing::Test {
  21. void SetUp() override;
  22. void TearDown() override;
  23. std::unique_ptr<graphics::direct_renderer> renderer;
  24. mock_renderer_impl * mock;
  25. };
  26. void DirectRendererTest::SetUp() {
  27. mock = new mock_renderer_impl;
  28. renderer.reset(new graphics::direct_renderer(mock));
  29. }
  30. void DirectRendererTest::TearDown() { delete mock; }
  31. TEST_F(DirectRendererTest, ClearPassesToClear) {
  32. EXPECT_CALL(*mock, clear()).Times(1);
  33. renderer->clear();
  34. }
  35. TEST_F(DirectRendererTest, FlushPassesToFlush) {
  36. EXPECT_CALL(*mock, flush()).Times(1);
  37. renderer->flush();
  38. }