|  | 
|  | 1 | +/* | 
|  | 2 | + * Licensed to the Apache Software Foundation (ASF) under one | 
|  | 3 | + * or more contributor license agreements.  See the NOTICE file | 
|  | 4 | + * distributed with this work for additional information | 
|  | 5 | + * regarding copyright ownership.  The ASF licenses this file | 
|  | 6 | + * to you under the Apache License, Version 2.0 (the | 
|  | 7 | + * "License"); you may not use this file except in compliance | 
|  | 8 | + * with the License.  You may obtain a copy of the License at | 
|  | 9 | + * | 
|  | 10 | + *   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 11 | + * | 
|  | 12 | + * Unless required by applicable law or agreed to in writing, | 
|  | 13 | + * software distributed under the License is distributed on an | 
|  | 14 | + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | 15 | + * KIND, either express or implied.  See the License for the | 
|  | 16 | + * specific language governing permissions and limitations | 
|  | 17 | + * under the License. | 
|  | 18 | + */ | 
| 1 | 19 | package org.apache.maven.plugin.coreit; | 
| 2 | 20 | 
 | 
| 3 | 21 | /* | 
|  | 
| 34 | 52 |  * @author Benjamin Bentmann | 
| 35 | 53 |  * | 
| 36 | 54 |  */ | 
| 37 |  | -public class ExpressionUtilTest | 
| 38 |  | -{ | 
|  | 55 | +public class ExpressionUtilTest { | 
| 39 | 56 | 
 | 
| 40 | 57 |     @Test | 
| 41 |  | -    public void testEvaluate() | 
| 42 |  | -    { | 
| 43 |  | -        Object array = new String[]{ "one", "two", "three" }; | 
| 44 |  | -        Object list = Arrays.asList( "0", "-1", "-2" ); | 
| 45 |  | -        Object map = Collections.singletonMap( "some.key", "value" ); | 
|  | 58 | +    public void testEvaluate() { | 
|  | 59 | +        Object array = new String[] {"one", "two", "three"}; | 
|  | 60 | +        Object list = Arrays.asList("0", "-1", "-2"); | 
|  | 61 | +        Object map = Collections.singletonMap("some.key", "value"); | 
| 46 | 62 |         Object bean = new BeanTwo(); | 
| 47 | 63 | 
 | 
| 48 | 64 |         Map<String, Object> contexts = new HashMap<>(); | 
| 49 |  | -        contexts.put( "array", array ); | 
| 50 |  | -        contexts.put( "list", list ); | 
| 51 |  | -        contexts.put( "map", map ); | 
| 52 |  | -        contexts.put( "bean", bean ); | 
| 53 |  | - | 
| 54 |  | -        assertSame( array, evaluate( "array", contexts ) ); | 
| 55 |  | -        assertSame( array, ExpressionUtil.evaluate( "array/", contexts ).get( "array" ) ); | 
| 56 |  | -        assertSame( list, evaluate( "list", contexts ) ); | 
| 57 |  | -        assertSame( map, evaluate( "map", contexts ) ); | 
| 58 |  | -        assertSame( bean, evaluate( "bean", contexts ) ); | 
| 59 |  | -        assertNull( evaluate( "no-root", contexts ) ); | 
| 60 |  | - | 
| 61 |  | -        assertEquals( 3, evaluate( "array/length", contexts ) ); | 
| 62 |  | -        assertEquals( "three", evaluate( "array/2", contexts ) ); | 
| 63 |  | -        assertEquals( 5, evaluate( "array/2/length", contexts ) ); | 
| 64 |  | -        assertNull( evaluate( "array/invalid", contexts ) ); | 
| 65 |  | -        assertNull( evaluate( "array/-1", contexts ) ); | 
| 66 |  | -        assertNull( evaluate( "array/999", contexts ) ); | 
| 67 |  | -        assertEquals( 3, ExpressionUtil.evaluate( "array/*", contexts ).size() ); | 
| 68 |  | -        assertEquals( "one", ExpressionUtil.evaluate( "array/*", contexts ).get( "array/0" ) ); | 
| 69 |  | -        assertEquals( "two", ExpressionUtil.evaluate( "array/*", contexts ).get( "array/1" ) ); | 
| 70 |  | -        assertEquals( "three", ExpressionUtil.evaluate( "array/*", contexts ).get( "array/2" ) ); | 
| 71 |  | - | 
| 72 |  | -        assertEquals( 3, evaluate( "list/size", contexts ) ); | 
| 73 |  | -        assertEquals( "-2", evaluate( "list/2", contexts ) ); | 
| 74 |  | -        assertNull( evaluate( "list/invalid", contexts ) ); | 
| 75 |  | -        assertNull( evaluate( "list/-1", contexts ) ); | 
| 76 |  | -        assertNull( evaluate( "list/999", contexts ) ); | 
| 77 |  | -        assertEquals( 3, ExpressionUtil.evaluate( "list/*", contexts ).size() ); | 
| 78 |  | -        assertEquals( "0", ExpressionUtil.evaluate( "list/*", contexts ).get( "list/0" ) ); | 
| 79 |  | -        assertEquals( "-1", ExpressionUtil.evaluate( "list/*", contexts ).get( "list/1" ) ); | 
| 80 |  | -        assertEquals( "-2", ExpressionUtil.evaluate( "list/*", contexts ).get( "list/2" ) ); | 
| 81 |  | - | 
| 82 |  | -        assertEquals( 1, evaluate( "map/size", contexts ) ); | 
| 83 |  | -        assertEquals( "value", evaluate( "map/some.key", contexts ) ); | 
| 84 |  | -        assertNull( evaluate( "map/invalid", contexts ) ); | 
| 85 |  | - | 
| 86 |  | -        assertEquals( "field", evaluate( "bean/field", contexts ) ); | 
| 87 |  | -        assertNull( evaluate( "bean/invalid", contexts ) ); | 
| 88 |  | -        assertEquals( "prop", evaluate( "bean/bean/prop", contexts ) ); | 
| 89 |  | -        assertEquals( "flag", evaluate( "bean/bean/flag", contexts ) ); | 
| 90 |  | -        assertEquals( "arg", evaluate( "bean/bean/arg", contexts ) ); | 
|  | 65 | +        contexts.put("array", array); | 
|  | 66 | +        contexts.put("list", list); | 
|  | 67 | +        contexts.put("map", map); | 
|  | 68 | +        contexts.put("bean", bean); | 
|  | 69 | + | 
|  | 70 | +        assertSame(array, evaluate("array", contexts)); | 
|  | 71 | +        assertSame(array, ExpressionUtil.evaluate("array/", contexts).get("array")); | 
|  | 72 | +        assertSame(list, evaluate("list", contexts)); | 
|  | 73 | +        assertSame(map, evaluate("map", contexts)); | 
|  | 74 | +        assertSame(bean, evaluate("bean", contexts)); | 
|  | 75 | +        assertNull(evaluate("no-root", contexts)); | 
|  | 76 | + | 
|  | 77 | +        assertEquals(3, evaluate("array/length", contexts)); | 
|  | 78 | +        assertEquals("three", evaluate("array/2", contexts)); | 
|  | 79 | +        assertEquals(5, evaluate("array/2/length", contexts)); | 
|  | 80 | +        assertNull(evaluate("array/invalid", contexts)); | 
|  | 81 | +        assertNull(evaluate("array/-1", contexts)); | 
|  | 82 | +        assertNull(evaluate("array/999", contexts)); | 
|  | 83 | +        assertEquals(3, ExpressionUtil.evaluate("array/*", contexts).size()); | 
|  | 84 | +        assertEquals("one", ExpressionUtil.evaluate("array/*", contexts).get("array/0")); | 
|  | 85 | +        assertEquals("two", ExpressionUtil.evaluate("array/*", contexts).get("array/1")); | 
|  | 86 | +        assertEquals("three", ExpressionUtil.evaluate("array/*", contexts).get("array/2")); | 
|  | 87 | + | 
|  | 88 | +        assertEquals(3, evaluate("list/size", contexts)); | 
|  | 89 | +        assertEquals("-2", evaluate("list/2", contexts)); | 
|  | 90 | +        assertNull(evaluate("list/invalid", contexts)); | 
|  | 91 | +        assertNull(evaluate("list/-1", contexts)); | 
|  | 92 | +        assertNull(evaluate("list/999", contexts)); | 
|  | 93 | +        assertEquals(3, ExpressionUtil.evaluate("list/*", contexts).size()); | 
|  | 94 | +        assertEquals("0", ExpressionUtil.evaluate("list/*", contexts).get("list/0")); | 
|  | 95 | +        assertEquals("-1", ExpressionUtil.evaluate("list/*", contexts).get("list/1")); | 
|  | 96 | +        assertEquals("-2", ExpressionUtil.evaluate("list/*", contexts).get("list/2")); | 
|  | 97 | + | 
|  | 98 | +        assertEquals(1, evaluate("map/size", contexts)); | 
|  | 99 | +        assertEquals("value", evaluate("map/some.key", contexts)); | 
|  | 100 | +        assertNull(evaluate("map/invalid", contexts)); | 
|  | 101 | + | 
|  | 102 | +        assertEquals("field", evaluate("bean/field", contexts)); | 
|  | 103 | +        assertNull(evaluate("bean/invalid", contexts)); | 
|  | 104 | +        assertEquals("prop", evaluate("bean/bean/prop", contexts)); | 
|  | 105 | +        assertEquals("flag", evaluate("bean/bean/flag", contexts)); | 
|  | 106 | +        assertEquals("arg", evaluate("bean/bean/arg", contexts)); | 
| 91 | 107 |     } | 
| 92 | 108 | 
 | 
| 93 |  | -    private static Object evaluate( String expression, Object context ) | 
| 94 |  | -    { | 
| 95 |  | -        return ExpressionUtil.evaluate( expression, context ).get( expression ); | 
|  | 109 | +    private static Object evaluate(String expression, Object context) { | 
|  | 110 | +        return ExpressionUtil.evaluate(expression, context).get(expression); | 
| 96 | 111 |     } | 
| 97 | 112 | 
 | 
| 98 | 113 |     @Test | 
| 99 |  | -    public void testGetProperty() | 
| 100 |  | -    { | 
|  | 114 | +    public void testGetProperty() { | 
| 101 | 115 |         BeanOne bean1 = new BeanOne(); | 
| 102 | 116 |         BeanTwo bean2 = new BeanTwo(); | 
| 103 | 117 | 
 | 
| 104 |  | -        assertEquals( bean1.isFlag(), ExpressionUtil.getProperty( bean1, "flag" ) ); | 
| 105 |  | -        assertEquals( bean1.getProp(), ExpressionUtil.getProperty( bean1, "prop" ) ); | 
| 106 |  | -        assertEquals( bean1.get( "get" ), ExpressionUtil.getProperty( bean1, "get" ) ); | 
|  | 118 | +        assertEquals(bean1.isFlag(), ExpressionUtil.getProperty(bean1, "flag")); | 
|  | 119 | +        assertEquals(bean1.getProp(), ExpressionUtil.getProperty(bean1, "prop")); | 
|  | 120 | +        assertEquals(bean1.get("get"), ExpressionUtil.getProperty(bean1, "get")); | 
| 107 | 121 | 
 | 
| 108 |  | -        assertNull( ExpressionUtil.getProperty( bean2, "invalid" ) ); | 
| 109 |  | -        assertEquals( bean2.field, ExpressionUtil.getProperty( bean2, "field" ) ); | 
| 110 |  | -        assertSame( bean2.bean, ExpressionUtil.getProperty( bean2, "bean" ) ); | 
|  | 122 | +        assertNull(ExpressionUtil.getProperty(bean2, "invalid")); | 
|  | 123 | +        assertEquals(bean2.field, ExpressionUtil.getProperty(bean2, "field")); | 
|  | 124 | +        assertSame(bean2.bean, ExpressionUtil.getProperty(bean2, "bean")); | 
| 111 | 125 | 
 | 
| 112 |  | -        assertEquals( 0, ExpressionUtil.getProperty( new String[0], "length" ) ); | 
|  | 126 | +        assertEquals(0, ExpressionUtil.getProperty(new String[0], "length")); | 
| 113 | 127 |     } | 
| 114 | 128 | 
 | 
| 115 |  | -    public static class BeanOne | 
| 116 |  | -    { | 
| 117 |  | -        public String isFlag() | 
| 118 |  | -        { | 
|  | 129 | +    public static class BeanOne { | 
|  | 130 | +        public String isFlag() { | 
| 119 | 131 |             return "flag"; | 
| 120 | 132 |         } | 
| 121 | 133 | 
 | 
| 122 |  | -        public String getProp() | 
| 123 |  | -        { | 
|  | 134 | +        public String getProp() { | 
| 124 | 135 |             return "prop"; | 
| 125 | 136 |         } | 
| 126 | 137 | 
 | 
| 127 |  | -        public String get( String arg ) | 
| 128 |  | -        { | 
|  | 138 | +        public String get(String arg) { | 
| 129 | 139 |             return arg; | 
| 130 | 140 |         } | 
| 131 | 141 |     } | 
| 132 | 142 | 
 | 
| 133 |  | -    public static class BeanTwo | 
| 134 |  | -    { | 
|  | 143 | +    @SuppressWarnings("checkstyle:VisibilityModifier") | 
|  | 144 | +    public static class BeanTwo { | 
| 135 | 145 |         public String field = "field"; | 
| 136 | 146 | 
 | 
| 137 | 147 |         public BeanOne bean = new BeanOne(); | 
| 138 |  | - | 
| 139 | 148 |     } | 
| 140 | 149 | } | 
0 commit comments