Skip to content

Commit 48e4675

Browse files
committed
Merge branch 'master' of github.com:buddycloud/buddycloud-server-java into replies-from-time-past
Conflicts: src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get/RepliesGetTest.java
2 parents d312cf5 + c6a9a1d commit 48e4675

File tree

2 files changed

+38
-8
lines changed
  • src
    • main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get
    • test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/get

2 files changed

+38
-8
lines changed

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,15 @@ private boolean itemExists() throws NodeStoreException {
8787
}
8888

8989
protected void addRsmElement() throws NodeStoreException {
90-
if (null == firstItemId) {
91-
return;
92-
}
90+
9391
Element rsm = pubsub.addElement(XMLConstants.SET_ELEM);
9492
rsm.addNamespace("", NS_RSM);
95-
rsm.addElement("first").setText(firstItemId);
96-
rsm.addElement("last").setText(lastItemId);
97-
rsm.addElement("count").setText(String.valueOf(channelManager.getCountNodeItemReplies(node, parentId)));
93+
if (null != firstItemId) {
94+
rsm.addElement("first").setText(firstItemId);
95+
rsm.addElement("last").setText(lastItemId);
96+
}
97+
rsm.addElement("count").setText(
98+
String.valueOf(channelManager.getCountNodeItemReplies(node, parentId)));
9899
}
99100

100101
private void addReplies() throws NodeStoreException {

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

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,35 @@ public void testRsmElementIsAddedCorrectly() throws Exception {
241241
Assert.assertEquals("4", rsmResult.elementText("last"));
242242
Assert.assertEquals(String.valueOf(TOTAL_RESULTS), rsmResult.elementText("count"));
243243
}
244-
244+
245+
@Test
246+
public void rsmStillAddedWhenThereAreNoResults() throws Exception {
247+
248+
Element rsm = request.getChildElement().addElement("set");
249+
rsm.addNamespace("", RepliesGet.NS_RSM);
250+
rsm.addElement("max").setText("4");
251+
rsm.addElement("after").setText("1");
252+
253+
ArrayList<NodeItem> expectedResults = new ArrayList<NodeItem>();
254+
Mockito.when(channelManager.getNodeItemReplies(Mockito.anyString(), Mockito.anyString(), Mockito.eq("1"), Mockito.eq(true), Mockito.eq(4))).thenReturn(
255+
new ClosableIteratorImpl<NodeItem>(expectedResults.iterator()));
256+
257+
Mockito.when(channelManager.getCountNodeItemReplies(Mockito.anyString(), Mockito.anyString())).thenReturn(0);
258+
259+
repliesGet.process(element, jid, request, null);
260+
Packet response = queue.poll();
261+
262+
Element items = response.getElement().element("pubsub").element("items");
263+
264+
Assert.assertEquals("/user/[email protected]/posts", items.attributeValue("node"));
265+
Assert.assertEquals(0, items.elements("item").size());
266+
267+
Element rsmResult = response.getElement().element("pubsub").element("set");
268+
Assert.assertNull(rsmResult.elementText("first"));
269+
Assert.assertNull(rsmResult.elementText("last"));
270+
Assert.assertEquals("0", rsmResult.elementText("count"));
271+
}
272+
245273
@Test
246274
public void providingBeforeValueInRsmElementInvokesPastItemLookup() throws Exception {
247275

@@ -257,7 +285,7 @@ public void providingBeforeValueInRsmElementInvokesPastItemLookup() throws Excep
257285
expectedResults.add(new NodeItemImpl(TEST_NODE, "3", new Date(), "<entry>value3</entry>"));
258286
expectedResults.add(new NodeItemImpl(TEST_NODE, "4", new Date(), "<entry>value4</entry>"));
259287

260-
Mockito.when(channelManager.getNodeItemReplies(Mockito.anyString(), Mockito.anyString(), Mockito.eq("1"), Mockito.eq(false), Mockito.eq(4))).thenReturn(
288+
Mockito.when(channelManager.getNodeItemReplies(Mockito.anyString(), Mockito.anyString(), Mockito.eq("2"), Mockito.eq(false), Mockito.eq(4))).thenReturn(
261289
new ClosableIteratorImpl<NodeItem>(expectedResults.iterator()));
262290

263291
repliesGet.process(element, jid, request, null);
@@ -267,4 +295,5 @@ public void providingBeforeValueInRsmElementInvokesPastItemLookup() throws Excep
267295

268296
Assert.assertEquals(4, items.elements("item").size());
269297
}
298+
270299
}

0 commit comments

Comments
 (0)