#include #include #include "Swiften/Parser/PayloadParsers/DiscoInfoParser.h" #include "Swiften/Parser/PayloadParsers/UnitTest/PayloadParserTester.h" using namespace Swift; class DiscoInfoParserTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(DiscoInfoParserTest); CPPUNIT_TEST(testParse); CPPUNIT_TEST_SUITE_END(); public: DiscoInfoParserTest() {} void testParse() { DiscoInfoParser testling; PayloadParserTester parser(&testling); CPPUNIT_ASSERT(parser.parse( "" "" "" "" "" "" "")); DiscoInfo* payload = dynamic_cast(testling.getPayload().get()); CPPUNIT_ASSERT_EQUAL(2, static_cast(payload->getIdentities().size())); CPPUNIT_ASSERT_EQUAL(String("Swift"), payload->getIdentities()[0].getName()); CPPUNIT_ASSERT_EQUAL(String("pc"), payload->getIdentities()[0].getType()); CPPUNIT_ASSERT_EQUAL(String("client"), payload->getIdentities()[0].getCategory()); CPPUNIT_ASSERT_EQUAL(String("en"), payload->getIdentities()[0].getLanguage()); CPPUNIT_ASSERT_EQUAL(String("Vlug"), payload->getIdentities()[1].getName()); CPPUNIT_ASSERT_EQUAL(String("pc"), payload->getIdentities()[1].getType()); CPPUNIT_ASSERT_EQUAL(String("client"), payload->getIdentities()[1].getCategory()); CPPUNIT_ASSERT_EQUAL(String("nl"), payload->getIdentities()[1].getLanguage()); CPPUNIT_ASSERT_EQUAL(3, static_cast(payload->getFeatures().size())); CPPUNIT_ASSERT_EQUAL(String("foo-feature"), payload->getFeatures()[0]); CPPUNIT_ASSERT_EQUAL(String("bar-feature"), payload->getFeatures()[1]); CPPUNIT_ASSERT_EQUAL(String("baz-feature"), payload->getFeatures()[2]); } }; CPPUNIT_TEST_SUITE_REGISTRATION(DiscoInfoParserTest);