diff options
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp')
| -rw-r--r-- | Swiften/Serializer/PayloadSerializers/UnitTest/UserLocationSerializerTest.cpp | 97 |
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 | |||
| 16 | using namespace Swift; | ||
| 17 | |||
| 18 | class 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 | |||
| 97 | CPPUNIT_TEST_SUITE_REGISTRATION(UserLocationSerializerTest); | ||
Swift