Skip to content

Commit 5cbbc30

Browse files
author
Lloyd Watkin
committed
Add a test for a database exception during subsciption listeners gathering
1 parent 0663ca0 commit 5cbbc30

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,4 +220,5 @@ public void addsInvitedByToUserSubscriptionsListIfUser() throws Exception {
220220
Assert.assertEquals(1, response.getChildElement().element("subscriptions").elements("subscription").size());
221221

222222
}
223+
223224
}

src/test/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/pubsub/set/NodeDeleteTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import org.buddycloud.channelserver.Configuration;
1010
import org.buddycloud.channelserver.channel.ChannelManager;
11+
import org.buddycloud.channelserver.db.exception.NodeStoreException;
1112
import org.buddycloud.channelserver.packetHandler.iq.IQTestHandler;
1213
import org.buddycloud.channelserver.pubsub.affiliation.Affiliations;
1314
import org.buddycloud.channelserver.pubsub.model.NodeSubscription;
@@ -284,4 +285,30 @@ public void testSuccessfulDeleteWithSubscribers() throws Exception {
284285
Assert.assertEquals(node,
285286
eventEl.element("delete").attributeValue("node"));
286287
}
288+
289+
@Test
290+
public void databaseExceptionWhenGettingListenersSendsMinimalNotifications() throws Exception {
291+
IQ request = readStanzaAsIq("/iq/pubsub/delete/request-with-node.stanza");
292+
Element deleteEl = request.getChildElement().element("delete");
293+
294+
String node = deleteEl.attributeValue("node");
295+
Mockito.when(channelManager.nodeExists(node)).thenReturn(true);
296+
297+
Mockito.doThrow(new NodeStoreException()).when(channelManager)
298+
.getNodeSubscriptionListeners(Mockito.anyString());
299+
300+
Mockito.when(channelManager.getNodeMembership(node, jid)).thenReturn(
301+
new NodeMembershipImpl(node, jid, Subscriptions.subscribed,
302+
Affiliations.owner, null));
303+
304+
nodeDelete.process(deleteEl, jid, request, null);
305+
IQ response = (IQ) queue.poll();
306+
307+
Assert.assertNull(response.getError());
308+
Assert.assertEquals(request.getID(), response.getID());
309+
Assert.assertEquals(Type.result, response.getType());
310+
311+
int adminCount = Configuration.getInstance().getAdminUsers().size();
312+
Assert.assertEquals(adminCount, queue.size());
313+
}
287314
}

0 commit comments

Comments
 (0)