Skip to content

Commit 6c9a852

Browse files
committed
More unit tests on NodeThreadsGet
1 parent 78f0e1e commit 6c9a852

2 files changed

Lines changed: 50 additions & 3 deletions

File tree

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get/NodeThreadsGet.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ private void addRsmElement() throws NodeStoreException {
7373
if (firstItem == null) {
7474
return;
7575
}
76-
Element pubsubEl = response.getElement().addElement("pubsub",
77-
JabberPubsub.NAMESPACE_URI);
76+
Element pubsubEl = response.getElement().element("pubsub");
7877
Element rsm = pubsubEl.addElement("set", NS_RSM);
7978
rsm.addElement("first", NS_RSM).setText(firstItem);
8079
rsm.addElement("last", NS_RSM).setText(lastItem);

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get/NodeThreadsGetTest.java

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Date;
44
import java.util.HashMap;
55
import java.util.LinkedList;
6+
import java.util.List;
67
import java.util.Map;
78
import java.util.concurrent.BlockingQueue;
89
import java.util.concurrent.LinkedBlockingQueue;
@@ -16,7 +17,9 @@
1617
import org.buddycloud.channelserver.pubsub.affiliation.Affiliations;
1718
import org.buddycloud.channelserver.pubsub.model.NodeThread;
1819
import org.buddycloud.channelserver.pubsub.model.impl.NodeAffiliationImpl;
20+
import org.buddycloud.channelserver.pubsub.model.impl.NodeItemImpl;
1921
import org.buddycloud.channelserver.pubsub.model.impl.NodeSubscriptionImpl;
22+
import org.buddycloud.channelserver.pubsub.model.impl.NodeThreadImpl;
2023
import org.buddycloud.channelserver.pubsub.subscription.Subscriptions;
2124
import org.dom4j.Element;
2225
import org.dom4j.tree.BaseElement;
@@ -170,6 +173,51 @@ public void testSucessfulEmptyResponse() throws Exception {
170173
Packet response = queue.poll();
171174

172175
Assert.assertNull(response.getError());
173-
Assert.assertNull(response.getElement().element("pubsub").element("threads"));
176+
Assert.assertNull(response.getElement().element("pubsub").element("thread"));
177+
}
178+
179+
@SuppressWarnings("unchecked")
180+
@Test
181+
public void testSucessfulNonEmptyResponse() throws Exception {
182+
IQ request = readStanzaAsIq("/iq/pubsub/threads/request-with-node.stanza");
183+
Element threadsEl = request.getChildElement().element("threads");
184+
185+
String node = threadsEl.attributeValue("node");
186+
Mockito.when(channelManager.nodeExists(node)).thenReturn(true);
187+
188+
Map<String, String> conf = new HashMap<String, String>();
189+
conf.put(AccessModel.FIELD_NAME, AccessModels.open.toString());
190+
Mockito.when(channelManager.getNodeConf(node)).thenReturn(conf);
191+
192+
LinkedList<NodeThread> threads = new LinkedList<NodeThread>();
193+
NodeThreadImpl threadA = new NodeThreadImpl("itemA", new Date());
194+
threadA.addItem(new NodeItemImpl(node, "itemA", new Date(), "<payload/>"));
195+
threadA.addItem(new NodeItemImpl(node, "itemB", new Date(), "<payload/>", "itemA"));
196+
threads.add(threadA);
197+
198+
NodeThreadImpl threadB = new NodeThreadImpl("itemC", new Date());
199+
threadB.addItem(new NodeItemImpl(node, "itemC", new Date(), "<payload/>"));
200+
threadB.addItem(new NodeItemImpl(node, "itemD", new Date(), "<payload/>", "itemC"));
201+
threads.add(threadB);
202+
203+
Mockito.when(channelManager.getNodeThreads(Mockito.eq(node), Mockito.anyString(),
204+
Mockito.anyInt())).thenReturn(new ResultSetImpl<NodeThread>(
205+
threads));
206+
Mockito.when(channelManager.countNodeThreads(node)).thenReturn(threads.size());
207+
208+
threadsGet.process(threadsEl, request.getFrom(), request, null);
209+
Packet response = queue.poll();
210+
211+
Assert.assertNull(response.getError());
212+
Element responsePubsubEl = response.getElement().element("pubsub");
213+
214+
List<Element> responseThreadsEl = responsePubsubEl.elements("thread");
215+
Assert.assertNotNull(responseThreadsEl);
216+
Assert.assertEquals(2, responseThreadsEl.size());
217+
218+
Element responseRsmEl = responsePubsubEl.element("set");
219+
Assert.assertEquals("itemA", responseRsmEl.elementText("first"));
220+
Assert.assertEquals("itemC", responseRsmEl.elementText("last"));
221+
Assert.assertEquals("2", responseRsmEl.elementText("count"));
174222
}
175223
}

0 commit comments

Comments
 (0)