diff options
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java')
-rw-r--r-- | framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java b/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java new file mode 100644 index 00000000..33673e3b --- /dev/null +++ b/framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java @@ -0,0 +1,148 @@ +package org.apache.maven.configuration; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.io.File; +import java.io.IOException; +import java.io.StringReader; + +import org.codehaus.plexus.PlexusTestCase; +import org.codehaus.plexus.util.xml.Xpp3Dom; +import org.codehaus.plexus.util.xml.Xpp3DomBuilder; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; + +/** + * @author Benjamin Bentmann + */ +public class DefaultBeanConfiguratorTest + extends PlexusTestCase +{ + + private BeanConfigurator configurator; + + @Override + protected void setUp() + throws Exception + { + super.setUp(); + + configurator = lookup( BeanConfigurator.class ); + } + + @Override + protected void tearDown() + throws Exception + { + configurator = null; + + super.tearDown(); + } + + private Xpp3Dom toConfig( String xml ) + { + try + { + return Xpp3DomBuilder.build( new StringReader( "<configuration>" + xml + "</configuration>" ) ); + } + catch ( XmlPullParserException e ) + { + throw new IllegalArgumentException( e ); + } + catch ( IOException e ) + { + throw new IllegalArgumentException( e ); + } + } + + public void testMinimal() + throws BeanConfigurationException + { + SomeBean bean = new SomeBean(); + + Xpp3Dom config = toConfig( "<file>test</file>" ); + + DefaultBeanConfigurationRequest request = new DefaultBeanConfigurationRequest(); + request.setBean( bean ).setConfiguration( config ); + + configurator.configureBean( request ); + + assertEquals( new File( "test" ), bean.file ); + } + + public void testPreAndPostProcessing() + throws BeanConfigurationException + { + SomeBean bean = new SomeBean(); + + Xpp3Dom config = toConfig( "<file>${test}</file>" ); + + BeanConfigurationValuePreprocessor preprocessor = new BeanConfigurationValuePreprocessor() + { + public Object preprocessValue( String value, Class<?> type ) + throws BeanConfigurationException + { + if ( value != null && value.startsWith( "${" ) && value.endsWith( "}" ) ) + { + return value.substring( 2, value.length() - 1 ); + } + return value; + } + }; + + BeanConfigurationPathTranslator translator = new BeanConfigurationPathTranslator() + { + public File translatePath( File path ) + { + return new File( "base", path.getPath() ).getAbsoluteFile(); + } + }; + + DefaultBeanConfigurationRequest request = new DefaultBeanConfigurationRequest(); + request.setBean( bean ).setConfiguration( config ); + request.setValuePreprocessor( preprocessor ).setPathTranslator( translator ); + + configurator.configureBean( request ); + + assertEquals( new File( "base/test" ).getAbsoluteFile(), bean.file ); + } + + public void testChildConfigurationElement() + throws BeanConfigurationException + { + SomeBean bean = new SomeBean(); + + Xpp3Dom config = toConfig( "<wrapper><file>test</file></wrapper>" ); + + DefaultBeanConfigurationRequest request = new DefaultBeanConfigurationRequest(); + request.setBean( bean ).setConfiguration( config, "wrapper" ); + + configurator.configureBean( request ); + + assertEquals( new File( "test" ), bean.file ); + } + + static class SomeBean + { + + File file; + + } + +} |