OSDN Git Service

suppress SimplifyBooleanReturns warning in PMD.
[mikutoga/TogaGem.git] / src / test / java / jp / sfjp / mikutoga / xml / DomUtilsTest.java
1 /*
2 @see https://www.w3.org/TR/xmlschema-2/
3  */
4
5 package jp.sfjp.mikutoga.xml;
6
7 import javax.xml.parsers.DocumentBuilder;
8 import javax.xml.parsers.DocumentBuilderFactory;
9 import javax.xml.parsers.ParserConfigurationException;
10 import org.junit.After;
11 import org.junit.AfterClass;
12 import org.junit.Before;
13 import org.junit.BeforeClass;
14 import org.junit.Test;
15 import static org.junit.Assert.*;
16 import org.w3c.dom.Document;
17 import org.w3c.dom.Element;
18
19 /**
20  *
21  */
22 public class DomUtilsTest {
23
24     private static final DocumentBuilderFactory FACTORY =
25             DocumentBuilderFactory.newInstance();
26     private static final DocumentBuilder BUILDER;
27
28     private static final String TESTELEM = "testelem";
29     private static final String TESTATTR = "testattr";
30
31     private static Element getTestAttredElem(String attrVal){
32         Document doc = BUILDER.newDocument();
33         Element elem = doc.createElement(TESTELEM);
34         elem.setAttribute(TESTATTR, attrVal);
35         return elem;
36     }
37
38     static{
39         try{
40             BUILDER = FACTORY.newDocumentBuilder();
41         }catch(ParserConfigurationException e){
42             throw new ExceptionInInitializerError(e);
43         }
44     }
45
46     public DomUtilsTest() {
47     }
48
49     @BeforeClass
50     public static void setUpClass() throws ParserConfigurationException{
51     }
52
53     @AfterClass
54     public static void tearDownClass() {
55     }
56
57     @Before
58     public void setUp() {
59     }
60
61     @After
62     public void tearDown() {
63     }
64
65     /**
66      * Test of getBooleanAttr method, of class DomUtils.
67      */
68     @Test
69     public void testGetBooleanAttr() throws Exception {
70         System.out.println("getBooleanAttr");
71
72         boolean result;
73         Element elem;
74
75         elem = getTestAttredElem("true");
76         result = DomUtils.getBooleanAttr(elem, TESTATTR);
77         assertTrue(result);
78
79         elem = getTestAttredElem("false");
80         result = DomUtils.getBooleanAttr(elem, TESTATTR);
81         assertFalse(result);
82
83         elem = getTestAttredElem("0");
84         result = DomUtils.getBooleanAttr(elem, TESTATTR);
85         assertFalse(result);
86
87         elem = getTestAttredElem("1");
88         result = DomUtils.getBooleanAttr(elem, TESTATTR);
89         assertTrue(result);
90
91         elem = getTestAttredElem("\n\rtrue\u0020\t");
92         result = DomUtils.getBooleanAttr(elem, TESTATTR);
93         assertTrue(result);
94
95         elem = getTestAttredElem("?");
96         try{
97             DomUtils.getBooleanAttr(elem, TESTATTR);
98             fail();
99         }catch(TogaXmlException e){
100             assert true;
101         }
102
103         return;
104     }
105
106     /**
107      * Test of getIntegerAttr method, of class DomUtils.
108      */
109     @Test
110     public void testGetIntegerAttr() throws TogaXmlException {
111         System.out.println("getIntegerAttr");
112
113         int result;
114         Element elem;
115
116         elem = getTestAttredElem("0");
117         result = DomUtils.getIntegerAttr(elem, TESTATTR);
118         assertEquals(0, result);
119
120         elem = getTestAttredElem("1");
121         result = DomUtils.getIntegerAttr(elem, TESTATTR);
122         assertEquals(1, result);
123
124         elem = getTestAttredElem("-1");
125         result = DomUtils.getIntegerAttr(elem, TESTATTR);
126         assertEquals(-1, result);
127
128         elem = getTestAttredElem("999");
129         result = DomUtils.getIntegerAttr(elem, TESTATTR);
130         assertEquals(999, result);
131
132         elem = getTestAttredElem("-9999");
133         result = DomUtils.getIntegerAttr(elem, TESTATTR);
134         assertEquals(-9999, result);
135
136         elem = getTestAttredElem("\n\r999\u0020\t");
137         result = DomUtils.getIntegerAttr(elem, TESTATTR);
138         assertEquals(999, result);
139
140         elem = getTestAttredElem("?");
141         try{
142             result = DomUtils.getIntegerAttr(elem, TESTATTR);
143             fail();
144         }catch(TogaXmlException e){
145             assert true;
146         }
147
148         return;
149     }
150
151     /**
152      * Test of getFloatAttr method, of class DomUtils.
153      */
154     @Test
155     public void testGetFloatAttr() throws TogaXmlException {
156         System.out.println("getFloatAttr");
157
158         float result;
159         Element elem;
160
161         elem = getTestAttredElem("0.0");
162         result = DomUtils.getFloatAttr(elem, TESTATTR);
163         assertEquals(0.0f, result, 0.0f);
164
165         elem = getTestAttredElem("-0.0");
166         result = DomUtils.getFloatAttr(elem, TESTATTR);
167         assertEquals(0.0f, result, 0.0f);
168         assertEquals("-0.0", Float.toString(result));
169
170         elem = getTestAttredElem("-123.456");
171         result = DomUtils.getFloatAttr(elem, TESTATTR);
172         assertEquals(-123.456f, result, 0.0f);
173
174         elem = getTestAttredElem("654.321");
175         result = DomUtils.getFloatAttr(elem, TESTATTR);
176         assertEquals(654.321f, result, 0.0f);
177
178         elem = getTestAttredElem("2.3E4");
179         result = DomUtils.getFloatAttr(elem, TESTATTR);
180         assertEquals(23000.0f, result, 0.0f);
181
182         elem = getTestAttredElem("INF");
183         result = DomUtils.getFloatAttr(elem, TESTATTR);
184         assertEquals(Float.POSITIVE_INFINITY, result, 0.0f);
185
186         elem = getTestAttredElem("+INF");
187         try{
188             DomUtils.getFloatAttr(elem, TESTATTR);
189             fail();
190         }catch(TogaXmlException e){
191             assert true;
192         }
193
194         elem = getTestAttredElem("NaN");
195         result = DomUtils.getFloatAttr(elem, TESTATTR);
196         assertTrue(Float.isNaN(result));
197
198         elem = getTestAttredElem("\n\r123.456\u0020\t");
199         result = DomUtils.getFloatAttr(elem, TESTATTR);
200         assertEquals(123.456f, result, 0.0f);
201
202         elem = getTestAttredElem("?");
203         try{
204             DomUtils.getFloatAttr(elem, TESTATTR);
205             fail();
206         }catch(TogaXmlException e){
207             assert true;
208         }
209
210         return;
211     }
212
213 }