    001    /*****************************************************************************
    002     * Copyright (C) PicoContainer Organization. All rights reserved.            *
    003     * ------------------------------------------------------------------------- *
    004     * The software in this package is published under the terms of the BSD      *
    005     * style license a copy of which has been included with this distribution in *
    006     * the LICENSE.txt file.                                                     *
    007     *                                                                           *
    008     * Original code by                                                          *
    009     *****************************************************************************/
    010    package org.picocontainer.defaults;
    011
    012    import java.beans.IntrospectionException;
    013
    014    import org.junit.Test;
    015
    016    /**
    017     * @author Aslak Helles&oslash;y
    018     */
    019    public class SetterIntrospectorTestCase {
    020        public static class TestBean {
    021            public void setPublicMethod(int i) {
    022            }
    023
    024            public void setPublicMETHODAgain(int i) {
    025            }
    026
    027            public void setMOOky(int i) {
    028            }
    029
    030            public void setFOOBAR(int i) {
    031            }
    032
    033            public void set(int i) {
    034            }
    035
    036            public void sets(int i) {
    037            }
    038
    039            public void fooBar(int i) {
    040            }
    041
    042            public void setX(int i) {
    043            }
    044
    045            public static void setStaticMethod(int i) {
    046            }
    047
    048            public static void setMany() {
    049            }
    050
    051            protected void setProtectedMethod(int i) {
    052            }
    053
    054            private void setPrivateMethod(int i) {
    055            }
    056        }
    057
    058        @Test public void testShouldConvertPropertyNamesInSameWayAsBeanInfo() throws IntrospectionException {
    059
    060    // TODO - to test via SetterInjectionComponentAdaptor with mock/expects.
    061
    062    //        BeanInfo beanInfo = Introspector.getBeanInfo(TestBean.class);
    063    //        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
    064    //
    065    //        Map setters = getSetters(TestBean.class);
    066    //        assertEquals(propertyDescriptors.length, setters.size());
    067    //
    068    //        for (int i = 0; i < propertyDescriptors.length; i++) {
    069    //            PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
    070    //            String expectedPropertyName = propertyDescriptor.getName();
    071    //            assertEquals("No property found for " + expectedPropertyName, propertyDescriptor.getWriteMethod(), setters.get(expectedPropertyName));
    072    //        }
    073        }
    074
    075    }