1//
2// TeeStreamTest.cpp
3//
4// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
5// and Contributors.
6//
7// SPDX-License-Identifier: BSL-1.0
8//
9
10
11#include "TeeStreamTest.h"
12#include "Poco/CppUnit/TestCaller.h"
13#include "Poco/CppUnit/TestSuite.h"
14#include "Poco/TeeStream.h"
15#include <sstream>
16
17
18using Poco::TeeInputStream;
19using Poco::TeeOutputStream;
20
21
22TeeStreamTest::TeeStreamTest(const std::string& rName): CppUnit::TestCase(rName)
23{
24}
25
26
27TeeStreamTest::~TeeStreamTest()
28{
29}
30
31
32void TeeStreamTest::testTeeInputStream()
33{
34 std::istringstream istr("foo");
35 std::ostringstream ostr;
36 TeeInputStream tis(istr);
37 tis.addStream(ostr);
38 std::string s;
39 tis >> s;
40 assertTrue (ostr.str() == "foo");
41}
42
43
44void TeeStreamTest::testTeeOutputStream()
45{
46 std::ostringstream ostr1;
47 std::ostringstream ostr2;
48 TeeOutputStream tos(ostr1);
49 tos.addStream(ostr2);
50 tos << "bar" << std::flush;
51 assertTrue (ostr1.str() == "bar");
52 assertTrue (ostr2.str() == "bar");
53}
54
55
56void TeeStreamTest::setUp()
57{
58}
59
60
61void TeeStreamTest::tearDown()
62{
63}
64
65
66CppUnit::Test* TeeStreamTest::suite()
67{
68 CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TeeStreamTest");
69
70 CppUnit_addTest(pSuite, TeeStreamTest, testTeeInputStream);
71 CppUnit_addTest(pSuite, TeeStreamTest, testTeeOutputStream);
72
73 return pSuite;
74}
75