diff options
author | Tarun Gupta <tarun1995gupta@gmail.com> | 2015-07-08 00:28:50 (GMT) |
---|---|---|
committer | Nick Hudson <nick.hudson@isode.com> | 2015-07-22 14:40:56 (GMT) |
commit | 7f96c8b224099f1c0e5c6996984fe79558e0d550 (patch) | |
tree | e9b3c600b370ffad139b05b84447aa5c6e3d9e78 /test/com/isode/stroke/queries/IQRouterTest.java | |
parent | 1f2c3add9971e8636013c384938456388b04ed79 (diff) | |
download | stroke-7f96c8b224099f1c0e5c6996984fe79558e0d550.zip stroke-7f96c8b224099f1c0e5c6996984fe79558e0d550.tar.bz2 |
Update Queries.
Updates RawXMLPayload Element, SoftwareVersion Element.
Updates IQRouter, Request, Responder, SoftwareVersionResponder.
Updates ErrorSerilaizer access.
Adds RawRequest, GetInBandRegistrationFormRequest, GetSoftwareVersionRequest,
and SetInBandRegistrationRequest.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for: IQRouter, Request and Responder.
Rest, all tests passes.
Change-Id: I22308cc05bd1a6c28f3937a44d997e1da47e2891
Diffstat (limited to 'test/com/isode/stroke/queries/IQRouterTest.java')
-rw-r--r-- | test/com/isode/stroke/queries/IQRouterTest.java | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/test/com/isode/stroke/queries/IQRouterTest.java b/test/com/isode/stroke/queries/IQRouterTest.java new file mode 100644 index 0000000..6e25891 --- /dev/null +++ b/test/com/isode/stroke/queries/IQRouterTest.java @@ -0,0 +1,186 @@ +/* + * 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.queries; + +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.queries.IQHandler; +import com.isode.stroke.queries.IQRouter; +import com.isode.stroke.queries.DummyIQChannel; +import com.isode.stroke.jid.JID; +import com.isode.stroke.elements.IQ; +import com.isode.stroke.elements.ErrorPayload; + +public class IQRouterTest { + + private DummyIQChannel channel_; + + private class DummyIQHandler implements IQHandler { + + public DummyIQHandler(boolean handle, IQRouter router) { + this.handle = handle; + this.router = router; + this.called = 0; + router.addHandler(this); + } + + public void delete() { + router.removeHandler(this); + } + + @Override + public boolean handleIQ(IQ iq) { + called++; + return handle; + } + + public boolean handle; + public IQRouter router; + public int called; + } + + private class RemovingIQHandler implements IQHandler { + + public RemovingIQHandler(IQRouter router) { + this.router = router; + this.called = 0; + router.addHandler(this); + } + + @Override + public boolean handleIQ(IQ iq) { + called++; + router.removeHandler(this); + return false; + } + + public IQRouter router; + public int called; + } + + @Before + public void setUp() { + channel_ = new DummyIQChannel(); + } + + @Test + public void testRemoveHandler() { + IQRouter testling = new IQRouter(channel_); + DummyIQHandler handler1 = new DummyIQHandler(true, testling); + DummyIQHandler handler2 = new DummyIQHandler(true, testling); + testling.removeHandler(handler1); + + channel_.onIQReceived.emit(new IQ()); + + assertEquals(0, handler1.called); + assertEquals(1, handler2.called); + } + + @Test + public void testRemoveHandler_AfterHandleIQ() { + IQRouter testling = new IQRouter(channel_); + DummyIQHandler handler2 = new DummyIQHandler(true, testling); + DummyIQHandler handler1 = new DummyIQHandler(true, testling); + + channel_.onIQReceived.emit(new IQ()); + testling.removeHandler(handler1); + channel_.onIQReceived.emit(new IQ()); + + assertEquals(1, handler1.called); + assertEquals(1, handler2.called); + } + + @Test + public void testHandleIQ_SuccesfulHandlerFirst() { + IQRouter testling = new IQRouter(channel_); + DummyIQHandler handler2 = new DummyIQHandler(false, testling); + DummyIQHandler handler1 = new DummyIQHandler(true, testling); + + channel_.onIQReceived.emit(new IQ()); + + assertEquals(1, handler1.called); + assertEquals(0, handler2.called); + assertEquals(0, channel_.iqs_.size()); + } + + @Test + public void testHandleIQ_SuccesfulHandlerLast() { + IQRouter testling = new IQRouter(channel_); + DummyIQHandler handler2 = new DummyIQHandler(true, testling); + DummyIQHandler handler1 = new DummyIQHandler(false, testling); + + channel_.onIQReceived.emit(new IQ()); + + assertEquals(1, handler1.called); + assertEquals(1, handler2.called); + assertEquals(0, channel_.iqs_.size()); + } + + @Test + public void testHandleIQ_NoSuccesfulHandler() { + IQRouter testling = new IQRouter(channel_); + DummyIQHandler handler = new DummyIQHandler(false, testling); + + channel_.onIQReceived.emit(new IQ()); + + assertEquals(1, channel_.iqs_.size()); + assertNotNull(channel_.iqs_.get(0).getPayload(new ErrorPayload())); + } + + @Test + public void testHandleIQ_HandlerRemovedDuringHandle() { + IQRouter testling = new IQRouter(channel_); + DummyIQHandler handler2 = new DummyIQHandler(true, testling); + RemovingIQHandler handler1 = new RemovingIQHandler(testling); + + channel_.onIQReceived.emit(new IQ()); + channel_.onIQReceived.emit(new IQ()); + + assertEquals(1, handler1.called); + assertEquals(2, handler2.called); + } + + @Test + public void testSendIQ_WithFrom() { + IQRouter testling = new IQRouter(channel_); + testling.setFrom(new JID("foo@bar.com/baz")); + + testling.sendIQ(new IQ()); + + assertEquals(new JID("foo@bar.com/baz"), channel_.iqs_.get(0).getFrom()); + } + + @Test + public void testSendIQ_WithoutFrom() { + IQRouter testling = new IQRouter(channel_); + + testling.sendIQ(new IQ()); + + assertEquals(new JID(), channel_.iqs_.get(0).getFrom()); + } + + @Test + public void testHandleIQ_WithFrom() { + IQRouter testling = new IQRouter(channel_); + testling.setFrom(new JID("foo@bar.com/baz")); + DummyIQHandler handler = new DummyIQHandler(false, testling); + + channel_.onIQReceived.emit(new IQ()); + + assertEquals(new JID("foo@bar.com/baz"), channel_.iqs_.get(0).getFrom()); + } +}
\ No newline at end of file |