/* * Copyright (c) 2012 Isode Limited, London, England. * All rights reserved. */ /* * Copyright (c) 2010 Remko Tronçon * All rights reserved. */ package com.isode.stroke.parser.payloadparsers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.BeforeClass; import org.junit.Test; import com.isode.stroke.elements.Command; import com.isode.stroke.elements.Form; import com.isode.stroke.elements.Payload; import com.isode.stroke.elements.Command.Action; import com.isode.stroke.elements.Command.Note; import com.isode.stroke.elements.Command.Status; import com.isode.stroke.elements.Command.Note.Type; import com.isode.stroke.eventloop.DummyEventLoop; public class CommandParserTest { @BeforeClass public static void init() throws Exception { } private static Command parse(String xmlString) { DummyEventLoop eventLoop = new DummyEventLoop(); PayloadsParserTester parser = new PayloadsParserTester(eventLoop); assertTrue(parser.parse(xmlString)); Payload payload = null; do { try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } eventLoop.processEvents(); payload = parser.getPayload(); } while (payload == null); return (Command) payload; } @Test public void testParse() { Command payload = parse(""); assertEquals(Action.PREV, payload.getAction()); assertEquals("list", payload.getNode()); assertEquals("myid", payload.getSessionID()); } @Test public void testParse_Result() { Command payload = parse("" + "Service 'httpd' has been configured." + "I lied." + "" + "" + "" + "" + ""); assertEquals(Status.COMPLETED, payload.getStatus()); List notes = payload.getNotes(); assertEquals(2, notes.size()); assertEquals(Type.WARN, notes.get(0).type); assertEquals("Service 'httpd' has been configured.", notes.get(0).note); assertEquals(Type.ERROR, notes.get(1).type); assertEquals("I lied.", notes.get(1).note); List actions = payload.getAvailableActions(); assertEquals(2, actions.size()); assertEquals(Action.PREV, actions.get(0)); assertEquals(Action.NEXT, actions.get(1)); assertEquals(Action.NEXT, payload.getExecuteAction()); } @Test public void testParse_Form() { Command payload = parse("" + "" + "Bot Configuration" + "Hello!" + "Fill out this form to configure your new bot!" + "" + ""); Form form = payload.getForm(); assertEquals("Bot Configuration", form.getTitle()); assertEquals("Hello!\nFill out this form to configure your new bot!", form.getInstructions()); assertEquals(Form.Type.RESULT_TYPE, form.getType()); } }