001    /*
002     *   Copyright (C) Christian Schulte, 2005-206
003     *   All rights reserved.
004     *
005     *   Redistribution and use in source and binary forms, with or without
006     *   modification, are permitted provided that the following conditions
007     *   are met:
008     *
009     *     o Redistributions of source code must retain the above copyright
010     *       notice, this list of conditions and the following disclaimer.
011     *
012     *     o Redistributions in binary form must reproduce the above copyright
013     *       notice, this list of conditions and the following disclaimer in
014     *       the documentation and/or other materials provided with the
015     *       distribution.
016     *
017     *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
018     *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
019     *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
020     *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
021     *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
022     *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
023     *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
024     *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
025     *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
026     *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
027     *
028     *   $JOMC: ToolsTypeTest.java 3838 2011-10-08 20:15:41Z schulte2005 $
029     *
030     */
031    package org.jomc.tools.model.test;
032    
033    import java.util.ArrayList;
034    import java.util.List;
035    import javax.xml.bind.JAXBElement;
036    import javax.xml.namespace.QName;
037    import org.jomc.tools.model.ToolsType;
038    import org.junit.Test;
039    import static org.junit.Assert.assertNotNull;
040    import static org.junit.Assert.fail;
041    
042    /**
043     * Test cases for class {@code org.jomc.tools.model.ToolsType}.
044     *
045     * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a> 1.0
046     * @version $JOMC: ToolsTypeTest.java 3838 2011-10-08 20:15:41Z schulte2005 $
047     */
048    public class ToolsTypeTest
049    {
050    
051        /** Creates a new {@code ToolsTypeTest} instance. */
052        public ToolsTypeTest()
053        {
054            super();
055        }
056    
057        /** Test {@code ToolsType}. */
058        public static class TestToolsType extends ToolsType
059        {
060    
061            @Override
062            public <T> JAXBElement<T> getAnyElement( final List<Object> any, final String namespaceURI,
063                                                     final String localPart, final Class<T> type )
064            {
065                return super.getAnyElement( any, namespaceURI, localPart, type );
066            }
067    
068            @Override
069            public <T> T getAnyObject( final List<Object> any, final Class<T> clazz )
070            {
071                return super.getAnyObject( any, clazz );
072            }
073    
074        }
075    
076        @Test
077        public final void testGetAnyElement() throws Exception
078        {
079            final TestToolsType toolsObject = new TestToolsType();
080            final List<Object> any = new ArrayList<Object>( 10 );
081            final QName name = new QName( "http://jomc.org/tools/model", "test" );
082            final JAXBElement<Object> element = new JAXBElement<Object>( name, Object.class, null, null );
083            any.add( element );
084            any.add( element );
085    
086            try
087            {
088                toolsObject.getAnyElement( any, "http://jomc.org/tools/model", "test", Object.class );
089                fail( "Expected 'IllegalStateException' not thrown." );
090            }
091            catch ( final IllegalStateException e )
092            {
093                assertNotNull( e.getMessage() );
094                System.out.println( e );
095            }
096        }
097    
098        @Test
099        public final void testGetAnyObject() throws Exception
100        {
101            final TestToolsType toolsObject = new TestToolsType();
102            final List<Object> any = new ArrayList<Object>( 10 );
103            any.add( "TEST" );
104            any.add( "TEST" );
105    
106            try
107            {
108                toolsObject.getAnyObject( any, String.class );
109                fail( "Expected 'IllegalStateException' not thrown." );
110            }
111            catch ( final IllegalStateException e )
112            {
113                assertNotNull( e.getMessage() );
114                System.out.println( e );
115            }
116        }
117    
118    }