package org.codehaus.mojo.pomtools.wrapper.reflection;
/*
* Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed 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 org.apache.maven.plugin.MojoExecutionException;
import org.codehaus.mojo.pomtools.AbstractPomToolsPluginTestCase;
import org.codehaus.mojo.pomtools.config.FieldConfiguration;
import org.codehaus.mojo.pomtools.config.PomToolsConfig;
import org.codehaus.mojo.pomtools.wrapper.DummyBean;
import org.codehaus.mojo.pomtools.wrapper.ObjectWrapper;
/**
*
* @author <a href="mailto:dhawkins@codehaus.org">David Hawkins</a>
* @version $Id$
*/
public class BeanFieldsTest
extends AbstractPomToolsPluginTestCase
{
public BeanFieldsTest()
{
super();
}
protected PomToolsConfig getPluginConfiguration()
throws MojoExecutionException
{
PomToolsConfig pluginConfig = super.getPluginConfiguration();
// ListFields
FieldConfiguration fieldConfig = new FieldConfiguration();
fieldConfig.setFieldName( "dummy.listFields" );
fieldConfig.setItemClassName( DummyBean.class.getName() );
pluginConfig.addFieldConfiguration( fieldConfig );
// ChangeMyLabel
fieldConfig = new FieldConfiguration();
fieldConfig.setFieldName( "dummy.changeMyLabel" );
fieldConfig.setLabel( "New fancy label" );
pluginConfig.addFieldConfiguration( fieldConfig );
//IgnoreMe
fieldConfig = new FieldConfiguration();
fieldConfig.setFieldName( "dummy.ignoreMe" );
fieldConfig.setIgnore( true );
pluginConfig.addFieldConfiguration( fieldConfig );
return pluginConfig;
}
public void testIntrospection()
{
ObjectWrapper ow = new ObjectWrapper( null, null, new DummyBean(), "dummy", DummyBean.class );
BeanFields fields = ow.getFields();
assertEquals( 6, fields.size() );
int index = 0;
BeanField field = fields.get( index++ );
assertEquals( "booleanField", field.getFieldName() );
assertEquals( "dummy.booleanField", field.getFullFieldName( ow ) );
assertEquals( BooleanField.class, field.getClass() );
field = fields.get( index++ );
assertEquals( "changeMyLabel", field.getFieldName() );
assertEquals( "dummy.changeMyLabel", field.getFullFieldName( ow ) );
assertEquals( "New fancy label", field.getLabel() );
assertEquals( StringField.class, field.getClass() );
field = fields.get( index++ );
assertEquals( "defaultingField", field.getFieldName() );
assertEquals( "dummy.defaultingField", field.getFullFieldName( ow ) );
assertEquals( StringField.class, field.getClass() );
field = fields.get( index++ );
assertEquals( "listFields", field.getFieldName() );
assertEquals( "dummy.listFields", field.getFullFieldName( ow ) );
assertEquals( ListField.class, field.getClass() );
field = fields.get( index++ );
assertEquals( "objectField", field.getFieldName() );
assertEquals( "dummy.objectField", field.getFullFieldName( ow ) );
assertEquals( CompositeField.class, field.getClass() );
field = fields.get( index++ );
assertEquals( "stringField", field.getFieldName() );
assertEquals( "dummy.stringField", field.getFullFieldName( ow ) );
assertEquals( StringField.class, field.getClass() );
}
}