summaryrefslogtreecommitdiffstats
blob: 777238198330d5e8ab3f9e723a0536bc6fba9fcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
 * Copyright (c) 2013 Tobias Markmann
 * Licensed under the simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */

#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/extensions/TestFactoryRegistry.h>

#include <Swiften/Serializer/PayloadSerializers/BlockSerializer.h>
#include <Swiften/Elements/BlockListPayload.h>
#include <Swiften/Elements/BlockPayload.h>
#include <Swiften/Elements/UnblockPayload.h>
#include <Swiften/JID/JID.h>

using namespace Swift;

class BlockSerializerTest : public CppUnit::TestFixture
{
		CPPUNIT_TEST_SUITE(BlockSerializerTest);
		CPPUNIT_TEST(testExample4);
		CPPUNIT_TEST(testExample6);
		CPPUNIT_TEST(testExample10);
		CPPUNIT_TEST_SUITE_END();

	public:
		BlockSerializerTest() {}

		void testExample4() {
			BlockSerializer<BlockListPayload> testling("blocklist");
			boost::shared_ptr<BlockListPayload> blocklist = boost::make_shared<BlockListPayload>();
			blocklist->addItem(JID("romeo@montague.net"));
			blocklist->addItem(JID("iago@shakespeare.lit"));

			CPPUNIT_ASSERT_EQUAL(std::string("<blocklist xmlns=\"urn:xmpp:blocking\"><item jid=\"romeo@montague.net\"/><item jid=\"iago@shakespeare.lit\"/></blocklist>"), testling.serialize(blocklist));
		}

		void testExample6() {
			BlockSerializer<BlockPayload> testling("block");
			boost::shared_ptr<BlockPayload> block = boost::make_shared<BlockPayload>();
			block->addItem(JID("romeo@montague.net"));

			CPPUNIT_ASSERT_EQUAL(std::string("<block xmlns=\"urn:xmpp:blocking\"><item jid=\"romeo@montague.net\"/></block>"), testling.serialize(block));
		}

		void testExample10() {
			BlockSerializer<UnblockPayload> testling("unblock");
			boost::shared_ptr<UnblockPayload> unblock = boost::make_shared<UnblockPayload>();
			unblock->addItem(JID("romeo@montague.net"));

			CPPUNIT_ASSERT_EQUAL(std::string("<unblock xmlns=\"urn:xmpp:blocking\"><item jid=\"romeo@montague.net\"/></unblock>"), testling.serialize(unblock));
		}
};

CPPUNIT_TEST_SUITE_REGISTRATION(BlockSerializerTest);