From 6430479a3a6f15e221f0b9f3e822b44ca37af0f8 Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Sat, 31 Oct 2015 06:25:47 +0100 Subject: Add a IoTester class --- tests/io_tester.hpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/io_tester.hpp (limited to 'tests/io_tester.hpp') diff --git a/tests/io_tester.hpp b/tests/io_tester.hpp new file mode 100644 index 0000000..8afa6f6 --- /dev/null +++ b/tests/io_tester.hpp @@ -0,0 +1,47 @@ +#ifndef BIBOUMI_IO_TESTER_HPP +#define BIBOUMI_IO_TESTER_HPP + +#include +#include + +/** + * Redirects a stream into a streambuf until the object is destroyed. + */ +template +class IoTester +{ +public: + IoTester(StreamType& ios): + stream{}, + ios(ios), + old_buf(ios.rdbuf()) + { + // Redirect the given os into our stringstream’s buf + this->ios.rdbuf(this->stream.rdbuf()); + } + ~IoTester() + { + this->ios.rdbuf(this->old_buf); + } + IoTester& operator=(const IoTester&) = delete; + IoTester& operator=(IoTester&&) = delete; + IoTester(const IoTester&) = delete; + IoTester(IoTester&&) = delete; + + std::string str() const + { + return this->stream.str(); + } + + void set_string(const std::string& s) + { + this->stream.str(s); + } + +private: + std::stringstream stream; + StreamType& ios; + std::streambuf* const old_buf; +}; + +#endif //BIBOUMI_IO_TESTER_HPP -- cgit v1.2.3 From 81f8f45b371d1a0ef72c2768fbd1f9188fe83616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Mon, 4 Jul 2016 17:53:53 +0200 Subject: Replace all include guards by #pragma once MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s $CURRENT_YEAR --- tests/io_tester.hpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'tests/io_tester.hpp') diff --git a/tests/io_tester.hpp b/tests/io_tester.hpp index 8afa6f6..b9cdaa7 100644 --- a/tests/io_tester.hpp +++ b/tests/io_tester.hpp @@ -1,5 +1,4 @@ -#ifndef BIBOUMI_IO_TESTER_HPP -#define BIBOUMI_IO_TESTER_HPP +#pragma once #include #include @@ -44,4 +43,3 @@ private: std::streambuf* const old_buf; }; -#endif //BIBOUMI_IO_TESTER_HPP -- cgit v1.2.3