summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp')
-rw-r--r--Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp97
1 files changed, 97 insertions, 0 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp
new file mode 100644
index 0000000..e1e3131
--- /dev/null
+++ b/Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp
@@ -0,0 +1,97 @@
1/*
2 * Copyright (c) 2015 Tarun Gupta.
3 * Licensed under the simplified BSD license.
4 * See Documentation/Licenses/BSD-simplified.txt for more information.
5 */
6
7#include <cppunit/extensions/HelperMacros.h>
8#include <cppunit/extensions/TestFactoryRegistry.h>
9#include <boost/smart_ptr/make_shared.hpp>
10
11#include <Swiften/Serializer/PayloadSerializers/UserLocationSerializer.h>
12#include <Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h>
13#include <Swiften/Elements/UserLocation.h>
14#include <Swiften/Base/DateTime.h>
15
16using namespace Swift;
17
18class UserLocationSerializerTest : public CppUnit::TestFixture {
19 CPPUNIT_TEST_SUITE(UserLocationSerializerTest);
20 CPPUNIT_TEST(testSerialize_withAllVariablesSet);
21 CPPUNIT_TEST(testSerialize_withSomeVariablesSet);
22 CPPUNIT_TEST_SUITE_END();
23
24 public:
25 void testSerialize_withAllVariablesSet() {
26 UserLocationSerializer testling(&serializers);
27 boost::shared_ptr<UserLocation> userLocation(new UserLocation());
28 userLocation->setArea(boost::optional<std::string>("Barbaric"));
29 userLocation->setAltitude(5.75F);
30 userLocation->setLocality(boost::optional<std::string>("Near"));
31 userLocation->setLatitude(boost::optional<float>(5.75F));
32 userLocation->setAccuracy(5.75F);
33 userLocation->setDescription(boost::optional<std::string>("Nice"));
34 userLocation->setCountryCode(boost::optional<std::string>("+91"));
35 userLocation->setTimestamp(stringToDateTime("2015-06-11T20:55:50Z"));
36 userLocation->setFloor(boost::optional<std::string>("3"));
37 userLocation->setBuilding(boost::optional<std::string>("First"));
38 userLocation->setRoom(boost::optional<std::string>("E315"));
39 userLocation->setCountry(boost::optional<std::string>("USA"));
40 userLocation->setRegion(boost::optional<std::string>("NewSode"));
41 userLocation->setURI(boost::optional<std::string>("URIs"));
42 userLocation->setLongitude(5.75F);
43 userLocation->setError(5.75F);
44 userLocation->setPostalCode(boost::optional<std::string>("67"));
45 userLocation->setBearing(5.75F);
46 userLocation->setText(boost::optional<std::string>("Hello"));
47 userLocation->setDatum(boost::optional<std::string>("Datee"));
48 userLocation->setStreet(boost::optional<std::string>("Highway"));
49 userLocation->setSpeed(5.75F);
50
51 std::string expectedResult =
52 "<geoloc xmlns=\"http://jabber.org/protocol/geoloc\">"
53 "<area>Barbaric</area><alt>5.75</alt><locality>Near</locality>"
54 "<lat>5.75</lat><accuracy>5.75</accuracy><description>Nice</description>"
55 "<countrycode>+91</countrycode><timestamp>2015-06-11T20:55:50Z</timestamp><floor>3</floor>"
56 "<building>First</building><room>E315</room><country>USA</country>"
57 "<region>NewSode</region><uri>URIs</uri><lon>5.75</lon><error>5.75</error>"
58 "<postalcode>67</postalcode><bearing>5.75</bearing><text>Hello</text>"
59 "<datum>Datee</datum><street>Highway</street><speed>5.75</speed></geoloc>";
60
61 CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(userLocation));
62 }
63
64 void testSerialize_withSomeVariablesSet() {
65 UserLocationSerializer testling(&serializers);
66 boost::shared_ptr<UserLocation> userLocation(new UserLocation());
67 userLocation->setArea(boost::optional<std::string>("Barbaric"));
68 userLocation->setAltitude(5.75F);
69 userLocation->setLocality(boost::optional<std::string>("Near"));
70 userLocation->setAccuracy(5.75F);
71 userLocation->setDescription(boost::optional<std::string>("Nice"));
72 userLocation->setCountryCode(boost::optional<std::string>("+91"));
73 userLocation->setTimestamp(stringToDateTime("2015-06-11T20:55:50Z"));
74 userLocation->setFloor(boost::optional<std::string>("3"));
75 userLocation->setRegion(boost::optional<std::string>("NewSode"));
76 userLocation->setURI(boost::optional<std::string>("URIs"));
77 userLocation->setLongitude(5.75F);
78 userLocation->setError(5.75F);
79 userLocation->setPostalCode(boost::optional<std::string>("67"));
80 userLocation->setBearing(5.75F);
81 userLocation->setText(boost::optional<std::string>("Hello"));
82
83 std::string expectedResult =
84 "<geoloc xmlns=\"http://jabber.org/protocol/geoloc\">"
85 "<area>Barbaric</area><alt>5.75</alt><locality>Near</locality>"
86 "<accuracy>5.75</accuracy><description>Nice</description>"
87 "<countrycode>+91</countrycode><timestamp>2015-06-11T20:55:50Z</timestamp><floor>3</floor>"
88 "<region>NewSode</region><uri>URIs</uri><lon>5.75</lon><error>5.75</error>"
89 "<postalcode>67</postalcode><bearing>5.75</bearing><text>Hello</text></geoloc>";
90
91 CPPUNIT_ASSERT_EQUAL(expectedResult, testling.serialize(userLocation));
92 }
93 private:
94 FullPayloadSerializerCollection serializers;
95};
96
97CPPUNIT_TEST_SUITE_REGISTRATION(UserLocationSerializerTest);