@@ -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