Package org.mokai.action.test

Source Code of org.mokai.action.test.ParseJsonActionTest

package org.mokai.action.test;

import java.util.List;
import java.util.Map;

import org.mokai.Message;
import org.mokai.action.JsonParserAction;
import org.testng.Assert;
import org.testng.annotations.Test;

public class ParseJsonActionTest {

  @Test
  public void shouldParseSimpleJson() throws Exception {
    JsonParserAction action = new JsonParserAction();
    action.setField("body");

    Message message = new Message();
    message.setProperty("body", "{ \"number\": 2, \"boolean\": false, \"string\": \"this is a test\", \"double\": 2.23 }");

    action.execute(message);

    Assert.assertEquals(message.getProperty("number", int.class).intValue(), 2);
    Assert.assertEquals(message.getProperty("boolean", Boolean.class).booleanValue(), false);
    Assert.assertEquals(message.getProperty("string", String.class), "this is a test");
    Assert.assertEquals(message.getProperty("double", Double.class).doubleValue(), 2.23);
  }

  @SuppressWarnings({ "unchecked", "rawtypes" })
  @Test
  public void shouldParseComplexJson() throws Exception {
    JsonParserAction action = new JsonParserAction();
    action.setField("body");

    Message message = new Message();
    message.setProperty("body", "[ 2, 3, 4 ]");

    action.execute(message);

    message.setProperty("body", "{ \"numbers\": { \"one\": [1, 2, 3], \"two\": [2, 3, 4], \"three\": [3, 4, 5] } }");

    action.execute(message);

    Assert.assertNotNull(message.getProperty("numbers"));
    Map<String,Object> numbers = message.getProperty("numbers", Map.class);
    List list = (List) numbers.get("one");
    Assert.assertNotNull(list);
    Assert.assertEquals(list.get(0), 1);
    Assert.assertEquals(list.get(1), 2);
    Assert.assertEquals(list.get(2), 3);

  }

  @Test
  public void shouldNotFailWithInvalidJson() throws Exception {
    JsonParserAction action = new JsonParserAction();
    action.setField("body");

    Message message = new Message();
    message.setProperty("body", "hola");
  }
}
TOP

Related Classes of org.mokai.action.test.ParseJsonActionTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.