diff options
Diffstat (limited to 'test/com/isode/stroke/serializer/payloadserializers/PubSubItemsSerializerTest.java')
-rw-r--r-- | test/com/isode/stroke/serializer/payloadserializers/PubSubItemsSerializerTest.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/test/com/isode/stroke/serializer/payloadserializers/PubSubItemsSerializerTest.java b/test/com/isode/stroke/serializer/payloadserializers/PubSubItemsSerializerTest.java new file mode 100644 index 0000000..9745dac --- /dev/null +++ b/test/com/isode/stroke/serializer/payloadserializers/PubSubItemsSerializerTest.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2014 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +/* + * Copyright (c) 2015 Tarun Gupta. + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +package com.isode.stroke.serializer.payloadserializers; + +import static org.junit.Assert.assertEquals; +import org.junit.Test; +import com.isode.stroke.serializer.payloadserializers.PubSubItemsSerializer; +import com.isode.stroke.serializer.payloadserializers.FullPayloadSerializerCollection; +import com.isode.stroke.serializer.PayloadSerializerCollection; +import com.isode.stroke.elements.PubSubItem; +import com.isode.stroke.elements.PubSubItems; +import com.isode.stroke.elements.RawXMLPayload; + +public class PubSubItemsSerializerTest { + + private FullPayloadSerializerCollection serializers = new FullPayloadSerializerCollection(); + + /** + * Default Constructor. + */ + public PubSubItemsSerializerTest() { + + } + + @Test + public void testSerialize() { + PubSubItemsSerializer serializer = new PubSubItemsSerializer(serializers); + + RawXMLPayload payload1 = new RawXMLPayload(); + payload1.setRawXML("<payload xmlns=\"tmp\"/>"); + + PubSubItem item1 = new PubSubItem(); + item1.addData(payload1); + item1.setID("pubsub-item-1"); + + RawXMLPayload payload2 = new RawXMLPayload(); + payload2.setRawXML("<payload xmlns=\"other-tmp\"/>"); + + PubSubItem item2 = new PubSubItem(); + item2.addData(payload2); + item2.setID("pubsub-item-2"); + + PubSubItems items = new PubSubItems(); + items.setNode("test-node"); + items.setSubscriptionID("sub-id"); + items.addItem(item1); + items.addItem(item2); + + String expectedResult = + "<items node=\"test-node\" subid=\"sub-id\" xmlns=\"http://jabber.org/protocol/pubsub\">" + + "<item id=\"pubsub-item-1\" xmlns=\"http://jabber.org/protocol/pubsub\">" + + "<payload xmlns=\"tmp\"/>" + + "</item>" + + "<item id=\"pubsub-item-2\" xmlns=\"http://jabber.org/protocol/pubsub\">" + + "<payload xmlns=\"other-tmp\"/>" + + "</item>" + + "</items>"; + + assertEquals(expectedResult, serializer.serialize(items)); + } + + @Test + public void testSerializeEmptyItems() { + PubSubItemsSerializer serializer = new PubSubItemsSerializer(serializers); + + PubSubItems items = new PubSubItems(); + + // Swiften code doesn't check for node being null in serializer and therefore will have extra node=\"\", + // BUT since it is being check in serializer here, there will be no node. + String expectedResult = + "<items xmlns=\"http://jabber.org/protocol/pubsub\"/>"; + + assertEquals(expectedResult, serializer.serialize(items)); + } + +}
\ No newline at end of file |