diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2015-07-25 06:48:08 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2015-08-17 11:10:49 (GMT) |
commit | 2533374644704040ca67aba4e1240a9d6ea450c8 (patch) | |
tree | f8b707a2b1544f934c0bc626eab51fb737a63541 /test/com/isode/stroke/presence/DirectedPresenceSenderTest.java | |
parent | 0a1f7199e26523dd2693f44a5841c5434cc9000d (diff) | |
download | stroke-2533374644704040ca67aba4e1240a9d6ea450c8.zip stroke-2533374644704040ca67aba4e1240a9d6ea450c8.tar.bz2 |
Updates Presence in accordance with Swiften.
Updates DirectedPresenceSender, PayloadAddingPresenceSender, PresenceOracle and SubscriptionManager.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for: DirectedPresenceSenderTest, PayloadAddingPresenceSenderTest and PresenceOracle.
All tests pass.
Change-Id: I9ad899965f5ac32c6f21805b530c234e391be6ba
Diffstat (limited to 'test/com/isode/stroke/presence/DirectedPresenceSenderTest.java')
-rw-r--r-- | test/com/isode/stroke/presence/DirectedPresenceSenderTest.java | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/test/com/isode/stroke/presence/DirectedPresenceSenderTest.java b/test/com/isode/stroke/presence/DirectedPresenceSenderTest.java new file mode 100644 index 0000000..a40a1a9 --- /dev/null +++ b/test/com/isode/stroke/presence/DirectedPresenceSenderTest.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2010 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ +/* + * Copyright (c) 2015 Tarun Gupta. + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +package com.isode.stroke.presence; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; +import org.junit.Before; +import com.isode.stroke.elements.Presence; +import com.isode.stroke.client.DummyStanzaChannel; +import com.isode.stroke.presence.DirectedPresenceSender; +import com.isode.stroke.presence.StanzaChannelPresenceSender; +import com.isode.stroke.jid.JID; + +public class DirectedPresenceSenderTest { + + private DummyStanzaChannel channel; + private StanzaChannelPresenceSender stanzaChannelPresenceSender; + private Presence testPresence; + private Presence secondTestPresence; + + private DirectedPresenceSender createPresenceSender() { + return new DirectedPresenceSender(stanzaChannelPresenceSender); + } + + @Before + public void setUp() { + channel = new DummyStanzaChannel(); + testPresence = new Presence(); + testPresence.setStatus("Foo"); + secondTestPresence = new Presence(); + secondTestPresence.setStatus("Bar"); + stanzaChannelPresenceSender = new StanzaChannelPresenceSender(channel); + } + + @Test + public void testSendPresence() { + DirectedPresenceSender testling = createPresenceSender(); + testling.sendPresence(testPresence); + + assertEquals(1, (channel.sentStanzas.size())); + Presence presence = (Presence)(channel.sentStanzas.get(0)); + assertEquals(testPresence, presence); + } + + @Test + public void testSendPresence_UndirectedPresenceWithDirectedPresenceReceivers() { + DirectedPresenceSender testling = createPresenceSender(); + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.AndSendPresence); + + testling.sendPresence(testPresence); + + assertEquals(2, (channel.sentStanzas.size())); + Presence presence = (Presence)(channel.sentStanzas.get(0)); + assertEquals(testPresence, presence); + presence = (Presence)(channel.sentStanzas.get(1)); + assertEquals(testPresence.getStatus(), presence.getStatus()); + assertEquals(new JID("alice@wonderland.lit/teaparty"), presence.getTo()); + } + + @Test + public void testSendPresence_DirectedPresenceWithDirectedPresenceReceivers() { + DirectedPresenceSender testling = createPresenceSender(); + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.AndSendPresence); + channel.sentStanzas.clear(); + + testPresence.setTo(new JID("foo@bar.com")); + testling.sendPresence(testPresence); + + assertEquals(1, (channel.sentStanzas.size())); + Presence presence = (Presence)(channel.sentStanzas.get(0)); + assertEquals(testPresence, presence); + } + + @Test + public void testAddDirectedPresenceReceiver() { + DirectedPresenceSender testling = createPresenceSender(); + testling.sendPresence(testPresence); + channel.sentStanzas.clear(); + + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.AndSendPresence); + + assertEquals(1, (channel.sentStanzas.size())); + Presence presence = (Presence)(channel.sentStanzas.get(0)); + assertEquals(testPresence.getStatus(), presence.getStatus()); + assertEquals(new JID("alice@wonderland.lit/teaparty"), presence.getTo()); + } + + @Test + public void testAddDirectedPresenceReceiver_WithoutSendingPresence() { + DirectedPresenceSender testling = createPresenceSender(); + testling.sendPresence(testPresence); + channel.sentStanzas.clear(); + + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.DontSendPresence); + + assertEquals(0, (channel.sentStanzas.size())); + } + + @Test + public void testAddDirectedPresenceReceiver_AfterSendingDirectedPresence() { + DirectedPresenceSender testling = createPresenceSender(); + testling.sendPresence(testPresence); + secondTestPresence.setTo(new JID("foo@bar.com")); + testling.sendPresence(secondTestPresence); + channel.sentStanzas.clear(); + + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.AndSendPresence); + + assertEquals(1, (channel.sentStanzas.size())); + Presence presence = (Presence)(channel.sentStanzas.get(0)); + assertEquals(testPresence.getStatus(), presence.getStatus()); + assertEquals(new JID("alice@wonderland.lit/teaparty"), presence.getTo()); + } + + @Test + public void testRemoveDirectedPresenceReceiver() { + DirectedPresenceSender testling = createPresenceSender(); + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.DontSendPresence); + + testling.removeDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.AndSendPresence); + testling.sendPresence(testPresence); + + assertEquals(2, (channel.sentStanzas.size())); + assertEquals(((Presence)(channel.sentStanzas.get(0))).getType(), Presence.Type.Unavailable); + assertEquals(channel.sentStanzas.get(1), testPresence); + } + + @Test + public void testRemoveDirectedPresenceReceiver_WithoutSendingPresence() { + DirectedPresenceSender testling = createPresenceSender(); + testling.addDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.AndSendPresence); + channel.sentStanzas.clear(); + + testling.removeDirectedPresenceReceiver(new JID("alice@wonderland.lit/teaparty"), DirectedPresenceSender.SendPresence.DontSendPresence); + testling.sendPresence(testPresence); + + assertEquals(1, (channel.sentStanzas.size())); + assertEquals(channel.sentStanzas.get(0), testPresence); + } +}
\ No newline at end of file |