/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.image.filter.parser; import junit.framework.TestCase; public class FilterExprParserTest extends TestCase { public void testEmpty() { assertEquals( "", parseAndSerialize( "" ) ); } public void testNoArgs() { assertEquals( "some()", parseAndSerialize( "some" ) ); assertEquals( "some()", parseAndSerialize( "some()" ) ); } public void testOneArg() { assertEquals( "some(1)", parseAndSerialize( "some(1)" ) ); assertEquals( "some(-1)", parseAndSerialize( "some(-1)" ) ); assertEquals( "some(1.0)", parseAndSerialize( "some(1.0)" ) ); assertEquals( "some(-1.0)", parseAndSerialize( "some(-1.0)" ) ); assertEquals( "some(false)", parseAndSerialize( "some(false)" ) ); assertEquals( "some(true)", parseAndSerialize( "some(true)" ) ); assertEquals( "some('1')", parseAndSerialize( "some('1')" ) ); assertEquals( "some('1')", parseAndSerialize( "some(\"1\")" ) ); assertEquals( "some(1)", parseAndSerialize( "some(0x1)" ) ); } public void testMultiArgs() { assertEquals( "some(1,2)", parseAndSerialize( "some(1,2)" ) ); assertEquals( "some(1,2,3)", parseAndSerialize( "some(1, 2, 3)" ) ); assertEquals( "some(1,'2',3)", parseAndSerialize( "some(1, '2', 3)" ) ); assertEquals( "some(1,true,false)", parseAndSerialize( "some(1,true,false)" ) ); } public void testMultiExpr() { assertEquals( "aa();bb();cc()", parseAndSerialize( "aa;bb();cc" ) ); assertEquals( "aa(1);bb(2);cc(3)", parseAndSerialize( "aa(1);bb(2);cc(3)" ) ); assertEquals( "aa(1,'a');bb(2,'b');cc(3,'c')", parseAndSerialize( "aa(1,'a');bb(2,'b');cc(3,'c')" ) ); } private String parseAndSerialize( String expr ) { return new FilterExprParser().parse( expr ).toString(); } }