/* * 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 org.junit.Test; import com.isode.stroke.elements.FormField; import com.isode.stroke.elements.MAMQuery; import com.isode.stroke.elements.ResultSet; import com.isode.stroke.eventloop.DummyEventLoop; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class MAMQueryParserTest { @Test public void testParse() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" + "" + "" + "urn:xmpp:mam:0" + "" + "" + "2010-08-07T00:00:00Z" + "" + "" + "" + "10" + "" + "")); MAMQuery payload = (MAMQuery)parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getQueryID() != null); assertEquals("id0", payload.getQueryID()); assertTrue(payload.getNode() != null); assertEquals("node1",payload.getNode()); assertTrue(payload.getForm() != null); FormField fieldType = payload.getForm().getField("FORM_TYPE"); assertTrue(fieldType != null); assertEquals("urn:xmpp:mam:0", fieldType.getTextSingleValue()); FormField fieldStart = payload.getForm().getField("start"); assertTrue(fieldStart != null); assertEquals("2010-08-07T00:00:00Z", fieldStart.getTextSingleValue()); assertTrue(payload.getResultSet() != null); ResultSet resultSet = payload.getResultSet(); assertTrue(resultSet.getMaxItems() != null); assertEquals(resultSet.getMaxItems(), new Long(10)); } @Test public void testParse_XEP0313_Example3() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" +"" +"" +"urn:xmpp:mam:0" +"" +"" +"juliet@capulet.lit" +"" +"" +"")); MAMQuery payload = (MAMQuery) parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getForm() != null); assertTrue(payload.getForm().getField("FORM_TYPE") != null); assertTrue(payload.getForm().getField("with") != null); assertEquals("urn:xmpp:mam:0",payload.getForm().getField("FORM_TYPE").getTextSingleValue()); assertEquals("juliet@capulet.lit",payload.getForm().getField("with").getTextSingleValue()); } @Test public void testParse_XEP0313_Example4() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" +"" +"" +"urn:xmpp:mam:0" +"" +"" +"2010-06-07T00:00:00Z" +"" +"" +"2010-07-07T13:23:54Z" +"" +"" +"")); MAMQuery payload = (MAMQuery) parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getForm() != null); assertTrue(payload.getForm().getField("FORM_TYPE") != null); assertTrue(payload.getForm().getField("start") != null); assertTrue(payload.getForm().getField("end") != null); assertEquals("urn:xmpp:mam:0",payload.getForm().getField("FORM_TYPE").getTextSingleValue()); assertEquals("2010-06-07T00:00:00Z",payload.getForm().getField("start").getTextSingleValue()); assertEquals("2010-07-07T13:23:54Z",payload.getForm().getField("end").getTextSingleValue()); } @Test public void testParseEmpty() { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse( "" + "")); MAMQuery payload = (MAMQuery)parser.getPayload(); assertTrue(payload != null); assertTrue(payload.getQueryID() != null); assertEquals("id0", payload.getQueryID()); assertTrue(payload.getForm() == null); assertTrue(payload.getResultSet() == null); } }