/* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include #include #include #include using namespace Swift; class StorageParserTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(StorageParserTest); CPPUNIT_TEST(testParse_Room); CPPUNIT_TEST(testParse_MultipleRooms); CPPUNIT_TEST(testParse_URL); CPPUNIT_TEST_SUITE_END(); public: StorageParserTest() {} void testParse_Room() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "" "" "Puck" "MyPass" "" "")); Storage* payload = dynamic_cast(parser.getPayload().get()); std::vector rooms = payload->getRooms(); CPPUNIT_ASSERT_EQUAL(1, static_cast(rooms.size())); CPPUNIT_ASSERT_EQUAL(std::string("Council of Oberon"), rooms[0].name); CPPUNIT_ASSERT_EQUAL(JID("council@conference.underhill.org"), rooms[0].jid); CPPUNIT_ASSERT(rooms[0].autoJoin); CPPUNIT_ASSERT_EQUAL(std::string("Puck"), rooms[0].nick); CPPUNIT_ASSERT_EQUAL(std::string("MyPass"), *rooms[0].password); } void testParse_MultipleRooms() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "" "" "" "")); Storage* payload = dynamic_cast(parser.getPayload().get()); std::vector rooms = payload->getRooms(); CPPUNIT_ASSERT_EQUAL(2, static_cast(rooms.size())); CPPUNIT_ASSERT_EQUAL(std::string("Council of Oberon"), rooms[0].name); CPPUNIT_ASSERT_EQUAL(JID("council@conference.underhill.org"), rooms[0].jid); CPPUNIT_ASSERT_EQUAL(std::string("Tea party"), rooms[1].name); CPPUNIT_ASSERT_EQUAL(JID("teaparty@wonderland.lit"), rooms[1].jid); } void testParse_URL() { PayloadsParserTester parser; CPPUNIT_ASSERT(parser.parse( "" "" "")); Storage* payload = dynamic_cast(parser.getPayload().get()); std::vector urls = payload->getURLs(); CPPUNIT_ASSERT_EQUAL(1, static_cast(urls.size())); CPPUNIT_ASSERT_EQUAL(std::string("Complete Works of Shakespeare"), urls[0].name); CPPUNIT_ASSERT_EQUAL(std::string("http://the-tech.mit.edu/Shakespeare/"), urls[0].url); } }; CPPUNIT_TEST_SUITE_REGISTRATION(StorageParserTest);