summaryrefslogtreecommitdiff
path: root/examples/cppunittest/XmlOutputterTest.cpp
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-07 18:37:53 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-07 18:37:53 +0000
commit150339335e3c5538c1e496ae01babf148bd29ec5 (patch)
tree9f354aaee81e08c27dc6da0709074babde7672f5 /examples/cppunittest/XmlOutputterTest.cpp
parent4410db53e88dc5aca9f86abaf9dffccbd5f94471 (diff)
downloadcppunit-150339335e3c5538c1e496ae01babf148bd29ec5.tar.gz
Include/cppunit/CompilerTestResultOutputter.
include/cppunit/CompilerTestResultOutputter.h : renamed CompilerOutputter.h * src/cppunit/CompilerTestResultOutputter.cpp : renamed CompilerOutputter.cpp * include/cppunit/CompilerTestResultOutputter.h : * src/cppunit/CompilerTestResultOutputter.cpp : ajust max line length for wrapping. Added static factory method defaultOutputter(). Print the number of test runs on success. * include/cppunit/CompilerTestResultOutputter.h : renamed CompilerOutputter.h. * src/cppunit/CompilerTestResultOutputter.cpp : renamed CompilerOutputter.cpp. * examples/cppunittest/CppUnitTestMain.cpp : use factory method CompilerTestResultOutputter::defaultOutputter(). * src/msvc6/DSPlugIn/DSPlugIn.dsp : removed COM registration in post-build step. IT is automatically done by VC++ when the add-in is added. Caused build to failed if the add-in was used in VC++. * NEWS : updated. * src/cppunit/TestAssert.cpp : modified deprecated assert implementations to use Asserter. * examples/cppunittest/XmlTestResultOutputterTest.h : renamed XmlOutputterTest.h. * examples/cppunittest/XmlTestResultOutputterTest.cpp : renamed XmlOutputterTest.cpp. * NEWS : * examples/cppunittest/CppUnitTestMain.cpp : * examples/cppunittest/CppUnitTestMain.dsp : * examples/cppunittest/Makefile.am : * examples/cppunittest/XmlTestResultOutputterTest.h : * examples/cppunittest/XmlTestResultOutputterTest.cpp : * examples/msvc6/CppUniTestApp/CppUnitTestApp.dsp * include/cppunit/CompilerOutputter.h : * include/cppunit/Makefile.am : * include/cppunit/XmlTestResultOutputter.h : * src/cppunit/CompilerOutputter.cpp : * src/cppunit/cppunit.dsp : * src/cppunit/Makefile.am : * src/cppunit/XmlTestResultOutputter.cpp : change due to renaming CompilerTestResultOutputter to CompilerOutputter, XmlTestResultOutputter to XmlOuputter, XmlTestResultOutputterTest to XmlOutputterTest.
Diffstat (limited to 'examples/cppunittest/XmlOutputterTest.cpp')
-rw-r--r--examples/cppunittest/XmlOutputterTest.cpp323
1 files changed, 323 insertions, 0 deletions
diff --git a/examples/cppunittest/XmlOutputterTest.cpp b/examples/cppunittest/XmlOutputterTest.cpp
new file mode 100644
index 0000000..d8326bc
--- /dev/null
+++ b/examples/cppunittest/XmlOutputterTest.cpp
@@ -0,0 +1,323 @@
+#include <cppunit/TestResult.h>
+#include <cppunit/XmlOutputter.h>
+#include "OutputSuite.h"
+#include "XmlOutputterTest.h"
+#include "XmlUniformiser.h"
+
+
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( XmlOutputterTest,
+ CppUnitTest::outputSuiteName() );
+
+
+XmlOutputterTest::XmlOutputterTest() :
+ CppUnit::TestCase()
+{
+}
+
+
+XmlOutputterTest::~XmlOutputterTest()
+{
+}
+
+
+void
+XmlOutputterTest::setUp()
+{
+}
+
+
+void
+XmlOutputterTest::tearDown()
+{
+}
+
+
+void
+XmlOutputterTest::testEmptyNodeToString()
+{
+ CppUnit::XmlOutputter::Node node( "element" );
+ std::string expectedXml = "<element></element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testNodeWithAttributesToString()
+{
+ CppUnit::XmlOutputter::Node node( "element" );
+ node.addAttribute( "id", 17 );
+ node.addAttribute( "date-format", "iso-8901" );
+ std::string expectedXml = "<element id=\"17\" "
+ "date-format=\"iso-8901\">"
+ "</element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testEscapedAttributeValueToString()
+{
+ CppUnit::XmlOutputter::Node node( "element" );
+ node.addAttribute( "escaped", "&<>\"'" );
+ std::string expectedXml = "<element escaped=\""
+ "&amp;&lt;&gt;&quot;&apos;"
+ "\"></element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testNodeWithChildrenToString()
+{
+ CppUnit::XmlOutputter::Node node( "element" );
+ node.addNode( new CppUnit::XmlOutputter::Node( "child1" ) );
+ node.addNode( new CppUnit::XmlOutputter::Node( "child2" ) );
+ std::string expectedXml = "<element><child1></child1>"
+ "<child2></child2></element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testNodeWithContentToString()
+{
+ CppUnit::XmlOutputter::Node node( "element", "content\nline2" );
+ std::string expectedXml = "<element>content\nline2</element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testNodeWithNumericContentToString()
+{
+ CppUnit::XmlOutputter::Node node( "element", 123456789 );
+ std::string expectedXml = "<element>123456789</element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testNodeWithContentAndChildToString()
+{
+ CppUnit::XmlOutputter::Node node( "element", "content" );
+ node.addNode( new CppUnit::XmlOutputter::Node( "child1" ) );
+ std::string expectedXml = "<element><child1></child1>content</element>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, node.toString() );
+}
+
+
+void
+XmlOutputterTest::testWriteXmlResultWithNoTest()
+{
+ CppUnit::TestResult result;
+
+ CppUnit::OStringStream stream;
+ CppUnit::XmlOutputter outputter( &result, stream );
+ outputter.write();
+
+ std::string actualXml = stream.str();
+ std::string expectedXml =
+ "<TestRun>"
+ "<FailedTests></FailedTests>"
+ "<SucessfulTests></SucessfulTests>"
+ "<Statistics>"
+ "<Tests>0</Tests>"
+ "<FailuresTotal>0</FailuresTotal>"
+ "<Errors>0</Errors>"
+ "<Failures>0</Failures>"
+ "</Statistics>"
+ "</TestRun>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
+}
+
+
+void
+XmlOutputterTest::testWriteXmlResultWithOneFailure()
+{
+ CppUnit::TestResult result;
+ CppUnit::TestCase test1( "test1" );
+ result.startTest( &test1 );
+ CppUnit::SourceLine sourceLine( "test.cpp", 3 );
+ result.addFailure( &test1, new CppUnit::Exception( "message failure1",
+ sourceLine ) );
+ result.endTest( &test1 );
+
+ CppUnit::OStringStream stream;
+ CppUnit::XmlOutputter outputter( &result, stream );
+ outputter.write();
+
+ std::string actualXml = stream.str();
+ std::string expectedXml =
+ "<TestRun>"
+ "<FailedTests>"
+ "<FailedTest id=\"1\">"
+ "<Name>test1</Name>"
+ "<FailureType>Assertion</FailureType>"
+ "<Location>"
+ "<File>test.cpp</File>"
+ "<Line>3</Line>"
+ "</Location>"
+ "message failure1"
+ "</FailedTest>"
+ "</FailedTests>"
+ "<SucessfulTests></SucessfulTests>"
+ "<Statistics>"
+ "<Tests>1</Tests>"
+ "<FailuresTotal>1</FailuresTotal>"
+ "<Errors>0</Errors>"
+ "<Failures>1</Failures>"
+ "</Statistics>"
+ "</TestRun>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
+}
+
+
+void
+XmlOutputterTest::testWriteXmlResultWithOneError()
+{
+ CppUnit::TestResult result;
+ CppUnit::TestCase test1( "test1" );
+ result.startTest( &test1 );
+ result.addError( &test1, new CppUnit::Exception( "message error1" ) );
+ result.endTest( &test1 );
+
+ CppUnit::OStringStream stream;
+ CppUnit::XmlOutputter outputter( &result, stream );
+ outputter.write();
+
+ std::string actualXml = stream.str();
+ std::string expectedXml =
+ "<TestRun>"
+ "<FailedTests>"
+ "<FailedTest id=\"1\">"
+ "<Name>test1</Name>"
+ "<FailureType>Error</FailureType>"
+ "message error1"
+ "</FailedTest>"
+ "</FailedTests>"
+ "<SucessfulTests></SucessfulTests>"
+ "<Statistics>"
+ "<Tests>1</Tests>"
+ "<FailuresTotal>1</FailuresTotal>"
+ "<Errors>1</Errors>"
+ "<Failures>0</Failures>"
+ "</Statistics>"
+ "</TestRun>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
+}
+
+
+void
+XmlOutputterTest::testWriteXmlResultWithOneSucess()
+{
+ CppUnit::TestResult result;
+ CppUnit::TestCase test1( "test1" );
+ result.startTest( &test1 );
+ result.endTest( &test1 );
+
+ CppUnit::OStringStream stream;
+ CppUnit::XmlOutputter outputter( &result, stream );
+ outputter.write();
+
+ std::string actualXml = stream.str();
+ std::string expectedXml =
+ "<TestRun>"
+ "<FailedTests></FailedTests>"
+ "<SucessfulTests>"
+ "<Test id=\"1\">"
+ "<Name>test1</Name>"
+ "</Test>"
+ "</SucessfulTests>"
+ "<Statistics>"
+ "<Tests>1</Tests>"
+ "<FailuresTotal>0</FailuresTotal>"
+ "<Errors>0</Errors>"
+ "<Failures>0</Failures>"
+ "</Statistics>"
+ "</TestRun>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
+}
+
+
+void
+XmlOutputterTest::testWriteXmlResultWithThreeFailureTwoErrorsAndTwoSucess()
+{
+ CppUnit::TestCase test1( "test1" );
+ CppUnit::TestCase test2( "test2" );
+ CppUnit::TestCase test3( "test3" );
+ CppUnit::TestCase test4( "test4" );
+ CppUnit::TestCase test5( "test5" );
+ CppUnit::TestCase test6( "test6" );
+ CppUnit::TestCase test7( "test7" );
+ CppUnit::TestResult result;
+ result.startTest( &test1 );
+ result.addFailure( &test1, new CppUnit::Exception( "failure1" ) );
+ result.endTest( &test1 );
+ result.startTest( &test2 );
+ result.addError( &test2, new CppUnit::Exception( "error1" ) );
+ result.endTest( &test2 );
+ result.startTest( &test3 );
+ result.addFailure( &test3, new CppUnit::Exception( "failure2" ) );
+ result.endTest( &test3 );
+ result.startTest( &test4 );
+ result.addFailure( &test4, new CppUnit::Exception( "failure3" ) );
+ result.endTest( &test4 );
+ result.startTest( &test5 );
+ result.endTest( &test5 );
+ result.startTest( &test6 );
+ result.addError( &test6, new CppUnit::Exception( "error2" ) );
+ result.endTest( &test6 );
+ result.startTest( &test7 );
+ result.endTest( &test7 );
+
+ CppUnit::OStringStream stream;
+ CppUnit::XmlOutputter outputter( &result, stream );
+ outputter.write();
+
+ std::string actualXml = stream.str();
+ std::string expectedXml =
+ "<TestRun>"
+ "<FailedTests>"
+ "<FailedTest id=\"1\">"
+ "<Name>test1</Name>"
+ "<FailureType>Assertion</FailureType>"
+ "failure1"
+ "</FailedTest>"
+ "<FailedTest id=\"2\">"
+ "<Name>test2</Name>"
+ "<FailureType>Error</FailureType>"
+ "error1"
+ "</FailedTest>"
+ "<FailedTest id=\"3\">"
+ "<Name>test3</Name>"
+ "<FailureType>Assertion</FailureType>"
+ "failure2"
+ "</FailedTest>"
+ "<FailedTest id=\"4\">"
+ "<Name>test4</Name>"
+ "<FailureType>Assertion</FailureType>"
+ "failure3"
+ "</FailedTest>"
+ "<FailedTest id=\"6\">"
+ "<Name>test6</Name>"
+ "<FailureType>Error</FailureType>"
+ "error2"
+ "</FailedTest>"
+ "</FailedTests>"
+ "<SucessfulTests>"
+ "<Test id=\"5\">"
+ "<Name>test5</Name>"
+ "</Test>"
+ "<Test id=\"7\">"
+ "<Name>test7</Name>"
+ "</Test>"
+ "</SucessfulTests>"
+ "<Statistics>"
+ "<Tests>7</Tests>"
+ "<FailuresTotal>5</FailuresTotal>"
+ "<Errors>2</Errors>"
+ "<Failures>3</Failures>"
+ "</Statistics>"
+ "</TestRun>";
+ CPPUNITTEST_ASSERT_XML_EQUAL( expectedXml, actualXml );
+} \ No newline at end of file