Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id$
   * --------------------------------------------------------------------------------------
   * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
   *
   * The software in this package is published under the terms of the CPAL v1.0
   * license, a copy of which has been included with this distribution in the
   * LICENSE.txt file.
   */
 
 package org.mule.module.json;
 
 
 import java.util.List;
 
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 {
 
     protected JsonExpressionEvaluator eval;
     protected String evalName;
     protected MuleMessage message;
 
     @Override
     protected void doSetUp() throws Exception
     {
         super.doSetUp();
          = getEvaluator();
          = getEvaluatorName();
          = new DefaultMuleMessage(IOUtils.getResourceAsString("test-data.json"getClass()),
             );
     }
 
     protected JsonExpressionEvaluator getEvaluator()
     {
         return new JsonExpressionEvaluator();
     }
 
     protected String getEvaluatorName()
     {
         return "json";
     }
 
     @Test
     public void testExpressions() throws Exception
     {
         assertEquals("test from Mule: 6ffca02b-9d52-475e-8b17-946acdb01492".evaluate("[0]/text",
             ));
 
         assertEquals("Mule Test".evaluate("[0]/user/name"));
         assertEquals("Mule Test9".evaluate("[9]/'user'/name"));
         assertNull(.evaluate("[9]/user/XXX"));
     }
 
     @Test
     public void testReturnTypes()
     {
         // String
         assertEquals(String.class.evaluate("[0]/user/name").getClass());
         // Number
         assertEquals(String.class.evaluate("[0]/id").getClass());
         // Boolean
         assertEquals(String.class.evaluate("[0]/truncated").getClass());
         // Object
         assertEquals(String.class.evaluate("[0]/user").getClass());
         // Array
         assertEquals(ArrayList.class.evaluate("[0]/anArray").getClass());
         assertEquals(String.class, ((List.evaluate("[0]/anArray")).get(0).getClass());
         assertEquals(String.class, ((List.evaluate("[0]/anArray")).get(1).getClass());
         assertEquals(ArrayList.class, ((List.evaluate("[0]/anArray")).get(2).getClass());
     }
 
     @Test
     public void testExpressionsUsingManager() throws Exception
     {
         assertEquals("test from Mule: 6ffca02b-9d52-475e-8b17-946acdb01492",
             .getExpressionManager().evaluate("#[json:[0]/text]"));
 
         assertEquals("Mule Test".getExpressionManager().evaluate( + ":[0]/user/name",
             ));
         assertEquals("Mule Test9".getExpressionManager().evaluate("#[json:[9]/'user'/name]",
             ));
         assertNull(.getExpressionManager().evaluate( + ":[9]/user/XXX"false));
 
         try
        {
            .getExpressionManager().evaluate( + ":[9]/user/XXX"true);
            fail("A value was required");
        }
        catch (ExpressionRuntimeException e)
        {
            // Expected
        }
    }
    @Test
    public void testExpressionFilter() throws Exception
    {
        ExpressionFilter filter = new ExpressionFilter("#[json:[0]/text]");
        filter.setMuleContext();
        assertTrue(filter.accept());
        filter.setExpression("[0]/favorited");
        assertFalse(filter.accept());
        filter.setExpression("[0]/truncated");
        assertTrue(filter.accept());
        filter.setExpression("[0]/source");
        assertTrue(filter.accept());
        filter.setExpression("[0]/xxx");
        assertFalse(filter.accept());
    }
    @Test
    public void testExpressionFilterWithBooleanLogic() throws Exception
    {
        ExpressionFilter filter = new ExpressionFilter("#[json:[0]/text]");
        filter.setMuleContext();
        assertTrue(filter.accept());
        filter.setExpression("[0]/favorited=false");
        assertTrue(filter.accept());
        filter.setExpression("[0]/truncated != true");
        assertFalse(filter.accept());
        filter.setExpression("[0]/source=null");
        assertFalse(filter.accept());
        filter.setExpression("[0]/source!= null");
        assertTrue(filter.accept());
    }
    @Test
    {
        // Checks against elements that do not exist
        ExpressionFilter filter = new ExpressionFilter("#[json:[0]/xyz = null]");
        filter.setMuleContext();
        assertTrue(filter.accept());
        filter.setExpression("[0]/xyz!= null");
        assertFalse(filter.accept());
    }
New to GrepCode? Check out our FAQ X