diff --git a/src/Board.hpp b/src/Board.hpp index 34cb79e..0d5f7e3 100644 --- a/src/Board.hpp +++ b/src/Board.hpp @@ -33,3 +33,5 @@ class Board void display() const; }; + +std::ostream& operator<<(std::ostream& os, const Board& b); diff --git a/src/DisplayBoard.cpp b/src/DisplayBoard.cpp index 5117a28..3de1bd8 100644 --- a/src/DisplayBoard.cpp +++ b/src/DisplayBoard.cpp @@ -118,3 +118,8 @@ std::string drawRow(const unsigned int maxElementsInRows) return rows; } } + +std::ostream& operator<<(std::ostream& os, const Board& b) +{ + return os << DisplayBoard::display(b); +} diff --git a/test/DisplayBoardTests.cpp b/test/DisplayBoardTests.cpp index ca6d6af..e6a5445 100644 --- a/test/DisplayBoardTests.cpp +++ b/test/DisplayBoardTests.cpp @@ -35,3 +35,15 @@ TEST_F(DisplayBoardTests, checkDisplayBoard) ASSERT_EQ(output, compareBoard); } + +TEST_F(DisplayBoardTests, checkOverloadedOstreamOperator) +{ + Board board(1, 1, {{1}}, {{1}}); + std::string compareBoard = " +--+\n | |\n+--+--+\n| |??|\n+--+--+\n"; + + testing::internal::CaptureStdout(); + std::cout << board; + std::string output = testing::internal::GetCapturedStdout(); + + ASSERT_EQ(output, compareBoard); +}