1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-01-31 18:07:14 +01:00
SqMod/vendor/POCO/Foundation/testsuite/src/CountingStreamTest.cpp
Sandu Liviu Catalin 4a6bfc086c Major plugin refactor and cleanup.
Switched to POCO library for unified platform/library interface.
Deprecated the external module API. It was creating more problems than solving.
Removed most built-in libraries in favor of system libraries for easier maintenance.
Cleaned and secured code with help from static analyzers.
2021-01-30 08:51:39 +02:00

123 lines
2.6 KiB
C++

//
// CountingStreamTest.cpp
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#include "CountingStreamTest.h"
#include "CppUnit/TestCaller.h"
#include "CppUnit/TestSuite.h"
#include "Poco/CountingStream.h"
#include <sstream>
using Poco::CountingInputStream;
using Poco::CountingOutputStream;
CountingStreamTest::CountingStreamTest(const std::string& name): CppUnit::TestCase(name)
{
}
CountingStreamTest::~CountingStreamTest()
{
}
void CountingStreamTest::testInput()
{
char c;
std::istringstream istr1("foo");
CountingInputStream ci1(istr1);
while (ci1.good()) ci1.get(c);
assertTrue (ci1.lines() == 1);
assertTrue (ci1.chars() == 3);
assertTrue (ci1.pos() == 3);
std::istringstream istr2("foo\nbar");
CountingInputStream ci2(istr2);
while (ci2.good()) ci2.get(c);
assertTrue (ci2.lines() == 2);
assertTrue (ci2.chars() == 7);
assertTrue (ci2.pos() == 3);
std::istringstream istr3("foo\nbar\n");
CountingInputStream ci3(istr3);
while (ci3.good()) ci3.get(c);
assertTrue (ci3.lines() == 2);
assertTrue (ci3.chars() == 8);
assertTrue (ci3.pos() == 0);
std::istringstream istr4("foo");
CountingInputStream ci4(istr4);
while (ci4.good()) ci4.get(c);
ci4.addChars(10);
ci4.addLines(2);
ci4.addPos(3);
assertTrue (ci4.lines() == 1 + 2);
assertTrue (ci4.chars() == 3 + 10);
assertTrue (ci4.pos() == 3 + 3);
}
void CountingStreamTest::testOutput()
{
std::ostringstream ostr1;
CountingOutputStream co1(ostr1);
co1 << "foo";
assertTrue (ostr1.str() == "foo");
assertTrue (co1.lines() == 1);
assertTrue (co1.chars() == 3);
assertTrue (co1.pos() == 3);
std::ostringstream ostr2;
CountingOutputStream co2(ostr2);
co2 << "foo\nbar";
assertTrue (ostr2.str() == "foo\nbar");
assertTrue (co2.lines() == 2);
assertTrue (co2.chars() == 7);
assertTrue (co2.pos() == 3);
CountingOutputStream co3;
co3 << "foo\nbar\n";
assertTrue (co3.lines() == 2);
assertTrue (co3.chars() == 8);
assertTrue (co3.pos() == 0);
std::ostringstream ostr4;
CountingOutputStream co4(ostr4);
co4 << "foo";
co4.addChars(10);
co4.addLines(2);
co4.addPos(3);
assertTrue (co4.lines() == 1 + 2);
assertTrue (co4.chars() == 3 + 10);
assertTrue (co4.pos() == 3 + 3);
}
void CountingStreamTest::setUp()
{
}
void CountingStreamTest::tearDown()
{
}
CppUnit::Test* CountingStreamTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("CountingStreamTest");
CppUnit_addTest(pSuite, CountingStreamTest, testInput);
CppUnit_addTest(pSuite, CountingStreamTest, testOutput);
return pSuite;
}