/* * Copyright (c) 2014 Kevin Smith and Remko Tronçon * All rights reserved. */ /* * Copyright (c) 2014, Isode Limited, London, England. * All rights reserved. */ package com.isode.stroke.parser.payloadparsers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; import com.isode.stroke.base.DateTime; import com.isode.stroke.elements.Forwarded; import com.isode.stroke.elements.IQ; import com.isode.stroke.elements.Message; import com.isode.stroke.elements.Presence; import com.isode.stroke.eventloop.DummyEventLoop; public class ForwardedParserTest { @Test public void testParseIQ() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" + "" + "" + "")); assertTrue(parser.getPayload() instanceof Forwarded); Forwarded payload = (Forwarded)parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getDelay() != null); assertEquals("2010-07-10T23:08:25Z", DateTime.dateToString(payload.getDelay().getStamp())); assertTrue(payload.getStanza() instanceof IQ); IQ iq = (IQ)payload.getStanza(); assertTrue(iq != null); assertEquals("stupidnewbie@example.com", iq.getTo().toString()); assertEquals("kindanormal@example.com/IM", iq.getFrom().toString()); assertEquals("id0", iq.getID()); assertEquals(IQ.Type.Get, iq.getType()); } @Test public void testParseMessage() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" + "" + "" + "Call me but love, and I'll be new baptized; Henceforth I never will be Romeo." + "" + "")); assertTrue(parser.getPayload() instanceof Forwarded); Forwarded payload = (Forwarded)parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getDelay() != null); assertEquals("2010-07-10T23:08:25Z", DateTime.dateToString(payload.getDelay().getStamp())); assertTrue(payload.getStanza() instanceof Message); Message message = (Message)payload.getStanza(); assertTrue(message != null); String expectedBody = "Call me but love, and I'll be new baptized; Henceforth I never will be Romeo."; assertEquals(expectedBody, message.getBody()); assertEquals(Message.Type.Chat, message.getType()); assertEquals("juliet@capulet.lit/balcony", message.getTo().toString()); assertEquals("romeo@montague.lit/orchard", message.getFrom().toString()); } @Test public void testParseMessageNoDelay() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" + "" + "Call me but love, and I'll be new baptized; Henceforth I never will be Romeo." + "" + "")); assertTrue(parser.getPayload() instanceof Forwarded); Forwarded payload = (Forwarded)parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getDelay() == null); assertTrue(payload.getStanza() instanceof Message); Message message = (Message)payload.getStanza(); assertTrue(message != null); String expectedBody = "Call me but love, and I'll be new baptized; Henceforth I never will be Romeo."; assertEquals(expectedBody, message.getBody()); assertEquals(Message.Type.Chat, message.getType()); assertEquals("juliet@capulet.lit/balcony", message.getTo().toString()); assertEquals("romeo@montague.lit/orchard", message.getFrom().toString()); } @Test public void testParsePresence() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" + "" + "" + "")); assertTrue(parser.getPayload() instanceof Forwarded); Forwarded payload = (Forwarded)parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getDelay() != null); assertEquals("2010-07-10T23:08:25Z", DateTime.dateToString(payload.getDelay().getStamp())); assertTrue(payload.getStanza() instanceof Presence); Presence presence = (Presence)payload.getStanza(); assertTrue(presence != null); assertEquals("madhatter@wonderland.lit", presence.getTo().toString()); assertEquals("alice@wonderland.lit/rabbithole", presence.getFrom().toString()); assertEquals(Presence.Type.Unavailable, presence.getType()); } }