1 /*
2 * Copyright (C) Christian Schulte <cs@schulte.it>, 2005-206
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * o Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * o Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $JOMC: ToolsTypeTest.java 5043 2015-05-27 07:03:39Z schulte $
29 *
30 */
31 package org.jomc.tools.model.test;
32
33 import java.util.ArrayList;
34 import java.util.List;
35 import javax.xml.bind.JAXBElement;
36 import javax.xml.namespace.QName;
37 import org.jomc.tools.model.ToolsType;
38 import org.junit.Test;
39 import static org.junit.Assert.assertNotNull;
40 import static org.junit.Assert.fail;
41
42 /**
43 * Test cases for class {@code org.jomc.tools.model.ToolsType}.
44 *
45 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 1.0
46 * @version $JOMC: ToolsTypeTest.java 5043 2015-05-27 07:03:39Z schulte $
47 */
48 public class ToolsTypeTest
49 {
50
51 /**
52 * Creates a new {@code ToolsTypeTest} instance.
53 */
54 public ToolsTypeTest()
55 {
56 super();
57 }
58
59 /**
60 * Test {@code ToolsType}.
61 */
62 public static class TestToolsType extends ToolsType
63 {
64
65 @Override
66 public <T> JAXBElement<T> getAnyElement( final List<Object> any, final String namespaceURI,
67 final String localPart, final Class<T> type )
68 {
69 return super.getAnyElement( any, namespaceURI, localPart, type );
70 }
71
72 @Override
73 public <T> T getAnyObject( final List<Object> any, final Class<T> clazz )
74 {
75 return super.getAnyObject( any, clazz );
76 }
77
78 }
79
80 @Test
81 public final void testGetAnyElement() throws Exception
82 {
83 final TestToolsType toolsObject = new TestToolsType();
84 final List<Object> any = new ArrayList<Object>( 10 );
85 final QName name = new QName( "http://jomc.org/tools/model", "test" );
86 final JAXBElement<Object> element = new JAXBElement<Object>( name, Object.class, null, null );
87 any.add( element );
88 any.add( element );
89
90 try
91 {
92 toolsObject.getAnyElement( any, "http://jomc.org/tools/model", "test", Object.class );
93 fail( "Expected 'IllegalStateException' not thrown." );
94 }
95 catch ( final IllegalStateException e )
96 {
97 assertNotNull( e.getMessage() );
98 System.out.println( e );
99 }
100 }
101
102 @Test
103 public final void testGetAnyObject() throws Exception
104 {
105 final TestToolsType toolsObject = new TestToolsType();
106 final List<Object> any = new ArrayList<Object>( 10 );
107 any.add( "TEST" );
108 any.add( "TEST" );
109
110 try
111 {
112 toolsObject.getAnyObject( any, String.class );
113 fail( "Expected 'IllegalStateException' not thrown." );
114 }
115 catch ( final IllegalStateException e )
116 {
117 assertNotNull( e.getMessage() );
118 System.out.println( e );
119 }
120 }
121
122 }