diff options
author | Gurmeen Bindra <gurmeen.bindra@isode.com> | 2012-04-19 09:13:47 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-04-27 11:06:22 (GMT) |
commit | e2f24c6930603dbd016a6530f7d12b08c97ea900 (patch) | |
tree | bcdcf5e98616db5859775b1a91a6200add5e4fc2 /test | |
parent | 9217dc0c6033f9d70c87ba4a84f5bbafe2c1e6ac (diff) | |
download | stroke-e2f24c6930603dbd016a6530f7d12b08c97ea900.zip stroke-e2f24c6930603dbd016a6530f7d12b08c97ea900.tar.bz2 |
Port Classes for Storage/Private Storage
This patch ports the classes for Storage, PrivateStorage and PrivateStorage
requests from Swiften to Stroke.
Test-information:
junit test for GetPrivateStorageRequestTest is also ported and tested
Diffstat (limited to 'test')
-rw-r--r-- | test/com/isode/stroke/queries/requests/GetPrivateStorageRequestTest.java | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/test/com/isode/stroke/queries/requests/GetPrivateStorageRequestTest.java b/test/com/isode/stroke/queries/requests/GetPrivateStorageRequestTest.java new file mode 100644 index 0000000..b310b6c --- /dev/null +++ b/test/com/isode/stroke/queries/requests/GetPrivateStorageRequestTest.java @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2012, Isode Limited, London, England. + * All rights reserved. + */ +/* + * Copyright (c) 2010, Remko Tronçon + * All rights reserved. + */ +package com.isode.stroke.queries.requests; + +import java.util.Vector; + +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + +import com.isode.stroke.elements.ErrorPayload; +import com.isode.stroke.elements.IQ; +import com.isode.stroke.elements.Payload; +import com.isode.stroke.elements.PrivateStorage; +import com.isode.stroke.jid.JID; +import com.isode.stroke.queries.DummyIQChannel; +import com.isode.stroke.queries.IQRouter; +import com.isode.stroke.signals.Slot2; + +public class GetPrivateStorageRequestTest { + private IQRouter router; + private DummyIQChannel channel; + private Vector<ErrorPayload> errors = new Vector<ErrorPayload>(); + private Vector<Payload> responses = new Vector<Payload>(); + + public class MyPayload extends Payload { + public MyPayload() { + this.text = ""; + } + public MyPayload(String text) { + this.text = text; + } + public String text; + } + + @Before + public void setUp() { + channel = new DummyIQChannel(); + router = new IQRouter(channel); + } + + @Test + public void testSend() throws Exception { + MyPayload mpl = new MyPayload(); + PrivateStorage privStType = new PrivateStorage(mpl); + GetPrivateStorageRequest<MyPayload> request = GetPrivateStorageRequest.create(mpl,router); + request.send(); + + assertEquals(1, channel.iqs_.size()); + assertEquals(new JID(), channel.iqs_.get(0).getTo()); + assertEquals(IQ.Type.Get, channel.iqs_.get(0).getType()); + + PrivateStorage storage = channel.iqs_.get(0).getPayload(privStType); + assertTrue(storage != null); + MyPayload payload = (MyPayload)storage.getPayload(); + assertTrue(payload != null); + } + + @Test + public void testHandleResponse() { + MyPayload mpl = new MyPayload(); + GetPrivateStorageRequest<MyPayload> testling = GetPrivateStorageRequest.create(mpl,router); + testling.onResponse.connect(new Slot2<MyPayload, ErrorPayload>() { + @Override + public void call(MyPayload p1, ErrorPayload p2) { + handleResponse(p1,p2); + } + }); + testling.send(); + channel.onIQReceived.emit(createResponse("test-id", "foo")); + + assertEquals(1, responses.size()); + assertEquals("foo", ((MyPayload)responses.get(0)).text); + } + + @Test + public void testHandleResponse_Error() { + MyPayload mpl = new MyPayload(); + GetPrivateStorageRequest<MyPayload> testling = GetPrivateStorageRequest.create(mpl,router); + testling.onResponse.connect(new Slot2<MyPayload, ErrorPayload>() { + @Override + public void call(MyPayload p1, ErrorPayload ep) { + handleResponse(p1, ep); + } + }); + testling.send(); + channel.onIQReceived.emit(createError("test-id")); + + assertEquals(0, responses.size()); + assertEquals(1, errors.size()); + } + + private void handleResponse(Payload p, ErrorPayload e) { + if (e != null) { + errors.add(e); + } else { + responses.add(p); + } + } + + private IQ createResponse(String id, String text) { + IQ iq = new IQ(IQ.Type.Result); + MyPayload mPl = new MyPayload(text); + PrivateStorage storage = new PrivateStorage(mPl); + storage.setPayload(mPl); + iq.addPayload(storage); + iq.setID(id); + return iq; + } + + private IQ createError(String id) { + IQ iq = new IQ(IQ.Type.Error); + iq.setID(id); + return iq; + } +} |