diff --git a/test/org/jivesoftware/smackx/pubsub/SubscriberUseCases.java b/test/org/jivesoftware/smackx/pubsub/SubscriberUseCases.java index 651793e07..da9f6712f 100644 --- a/test/org/jivesoftware/smackx/pubsub/SubscriberUseCases.java +++ b/test/org/jivesoftware/smackx/pubsub/SubscriberUseCases.java @@ -11,6 +11,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smackx.FormField; import org.jivesoftware.smackx.pubsub.test.SingleUserTestCase; @@ -130,10 +131,22 @@ public class SubscriberUseCases extends SingleUserTestCase // assertEquals(true, sub.isConfigRequired()); // } // + + public void testGetItemsWithSingleSubscription() throws XMPPException + { + LeafNode node = getPubnode(true, false); + node.subscribe(getBareJID(0)); + runNodeTests(node); + } + public void testGetItems() throws XMPPException { LeafNode node = getPubnode(true, false); - + runNodeTests(node); + } + + private void runNodeTests(LeafNode node) throws XMPPException + { node.send((Item)null); node.send((Item)null); node.send((Item)null); @@ -175,15 +188,15 @@ public class SubscriberUseCases extends SingleUserTestCase assertTrue(payloadItems.size() == 4); } - public void getSpecifiedItems() throws XMPPException + public void testGetSpecifiedItems() throws XMPPException { LeafNode node = getPubnode(true, true); - node.send(new PayloadItem("1", new SimplePayload("a", "pubsub:test", ""))); - node.send(new PayloadItem("2", new SimplePayload("a", "pubsub:test", ""))); - node.send(new PayloadItem("3", new SimplePayload("a", "pubsub:test", ""))); - node.send(new PayloadItem("4", new SimplePayload("a", "pubsub:test", ""))); - node.send(new PayloadItem("5", new SimplePayload("a", "pubsub:test", ""))); + node.send(new PayloadItem("1", new SimplePayload("a", "pubsub:test", ""))); + node.send(new PayloadItem("2", new SimplePayload("a", "pubsub:test", ""))); + node.send(new PayloadItem("3", new SimplePayload("a", "pubsub:test", ""))); + node.send(new PayloadItem("4", new SimplePayload("a", "pubsub:test", ""))); + node.send(new PayloadItem("5", new SimplePayload("a", "pubsub:test", ""))); Collection ids = new ArrayList(3); ids.add("1"); @@ -193,11 +206,11 @@ public class SubscriberUseCases extends SingleUserTestCase List> items = node.getItems(ids); assertEquals(3, items.size()); assertEquals(items.get(0).getId(), "1"); - assertEquals(items.get(0).getPayload().toXML(), ""); + assertEquals("", items.get(0).getPayload().toXML().replace('\"', '\'')); assertEquals(items.get(1).getId(), "3"); - assertEquals(items.get(1).getPayload().toXML(), ""); - assertEquals(items.get(2).getId(), "5"); - assertEquals(items.get(2).getPayload().toXML(), ""); + assertEquals("", items.get(1).getPayload().toXML().replace('\"', '\'')); + assertEquals(items.get(2).getId(), "4"); + assertEquals("", items.get(3).getPayload().toXML().replace('\"', '\'')); } public void testGetLastNItems() throws XMPPException diff --git a/test/org/jivesoftware/smackx/pubsub/TestEvents.java b/test/org/jivesoftware/smackx/pubsub/TestEvents.java index 7ed73ab38..e0424cf4c 100644 --- a/test/org/jivesoftware/smackx/pubsub/TestEvents.java +++ b/test/org/jivesoftware/smackx/pubsub/TestEvents.java @@ -6,6 +6,7 @@ package org.jivesoftware.smackx.pubsub; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; @@ -198,32 +199,31 @@ public class TestEvents extends SmackTestCase * org.jivesoftware.smackx.pubsub.CarExtensionProvider * */ - /* public void testSendAndReceiveCarPayload() throws Exception { // Setup event source String nodeId = "TestNode" + System.currentTimeMillis(); PubSubManager creatorMgr = new PubSubManager(getConnection(0), getService()); - Node creatorNode = getPubnode(creatorMgr, nodeId, true, true); + LeafNode creatorNode = getPubnode(creatorMgr, nodeId, true, true); - BlockingQueue queue = new ArrayBlockingQueue(3); + BlockingQueue>> queue = new ArrayBlockingQueue>>(3); // Setup event receiver PubSubManager subMgr = new PubSubManager(getConnection(1), getService()); Node subNode = subMgr.getNode(nodeId); - ItemEventCoordinator sub1Handler = new ItemEventCoordinator(queue, "sub1"); + ItemEventCoordinator> sub1Handler = new ItemEventCoordinator>(queue, "sub1"); subNode.addItemEventListener(sub1Handler); Subscription sub1 = subNode.subscribe(getConnection(1).getUser()); // Send event String itemId = String.valueOf(System.currentTimeMillis()); String payloadString = ""; - creatorNode.send(new Item(itemId, new SimplePayload("car", "pubsub:test:vehicle", payloadString))); + creatorNode.send(new PayloadItem(itemId, new SimplePayload("car", "pubsub:test:vehicle", payloadString))); - ItemEventCoordinator coord = queue.take(); + ItemEventCoordinator> coord = queue.take(); assertEquals(1, coord.events.getItems().size()); - Item item = coord.events.getItems().get(0); + PayloadItem item = coord.events.getItems().get(0); assertEquals(itemId, item.getId()); assertTrue(item.getPayload() instanceof CarExtension); @@ -231,7 +231,6 @@ public class TestEvents extends SmackTestCase assertEquals("green", car.getColor()); assertEquals(4, car.getNumTires()); } - */ public void testSendAndReceiveMultipleSubs() throws Exception { @@ -279,10 +278,10 @@ public class TestEvents extends SmackTestCase String nodeId = "TestNode" + System.currentTimeMillis(); PubSubManager creatorMgr = new PubSubManager(getConnection(0), getService()); - LeafNode creatorNode = getPubnode(creatorMgr, nodeId, true, false); + LeafNode creatorNode = getPubnode(creatorMgr, nodeId, true, true); - BlockingQueue> queue = new ArrayBlockingQueue>(3); - ItemEventCoordinator creatorHandler = new ItemEventCoordinator(queue, "creator"); + BlockingQueue>> queue = new ArrayBlockingQueue>>(3); + ItemEventCoordinator> creatorHandler = new ItemEventCoordinator>(queue, "creator"); creatorNode.addItemEventListener(creatorHandler); creatorNode.subscribe(getConnection(0).getUser()); @@ -290,11 +289,11 @@ public class TestEvents extends SmackTestCase PubSubManager subMgr = new PubSubManager(getConnection(1), getService()); LeafNode subNode = (LeafNode)subMgr.getNode(nodeId); - ItemEventCoordinator sub1Handler = new ItemEventCoordinator(queue, "sub1"); + ItemEventCoordinator> sub1Handler = new ItemEventCoordinator>(queue, "sub1"); subNode.addItemEventListener(sub1Handler); Subscription sub1 = subNode.subscribe(getConnection(1).getUser()); - ItemEventCoordinator sub2Handler = new ItemEventCoordinator(queue, "sub2"); + ItemEventCoordinator> sub2Handler = new ItemEventCoordinator>(queue, "sub2"); subNode.addItemEventListener(sub2Handler); Subscription sub2 = subNode.subscribe(getConnection(1).getUser()); @@ -304,20 +303,29 @@ public class TestEvents extends SmackTestCase // Send event String itemId = String.valueOf(System.currentTimeMillis()); - Collection items = new ArrayList(3); - items.add(new Item("First-" + itemId)); - items.add(new Item("Second-" + itemId)); - items.add(new Item("Third-" + itemId)); + Collection> items = new ArrayList>(3); + String ids[] = {"First-" + itemId, "Second-" + itemId, "Third-" + itemId}; + items.add(new PayloadItem(ids[0], new SimplePayload("a", "pubsub:test", ""))); + items.add(new PayloadItem(ids[1], new SimplePayload("a", "pubsub:test", ""))); + items.add(new PayloadItem(ids[2], new SimplePayload("a", "pubsub:test", ""))); creatorNode.send(items); for(int i=0; i<3; i++) { - ItemEventCoordinator coord = queue.poll(5, TimeUnit.SECONDS); + ItemEventCoordinator> coord = queue.poll(5, TimeUnit.SECONDS); if (coord == creatorHandler) assertEquals(1, coord.events.getSubscriptions().size()); else assertEquals(2, coord.events.getSubscriptions().size()); - assertEquals(3, coord.events.getItems().size()); + List> itemResults = coord.events.getItems(); + assertEquals(3, itemResults.size()); + +// assertEquals(ids[0], itemResults.get(0).getId()); +// assertEquals("", itemResults.get(0).getPayload().toXML().replace('\"', '\'')); +// assertEquals(ids[1], itemResults.get(1).getId()); +// assertEquals("", itemResults.get(1).getPayload().toXML().replace('\"', '\'')); +// assertEquals(ids[21], itemResults.get(2).getId()); +// assertEquals("", itemResults.get(3).getPayload().toXML().replace('\"', '\'')); } } @@ -476,7 +484,7 @@ public class TestEvents extends SmackTestCase assertTrue(check1); assertTrue(check2); } - + class ItemEventCoordinator implements ItemEventListener { private BlockingQueue> theQueue;