OSDN Git Service

初回インポート
[jovsonz/Jovsonz.git] / src / test / java / jp / sourceforge / jovsonz / JsonAppenderTest.java
1 /*
2  * License : The MIT License
3  * Copyright(c) 2009 olyutorskii
4  */
5
6 package jp.sourceforge.jovsonz;
7
8 import java.io.Reader;
9 import java.io.StringReader;
10 import java.util.EmptyStackException;
11 import org.junit.After;
12 import org.junit.AfterClass;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
15 import org.junit.Test;
16 import static org.junit.Assert.*;
17
18 /**
19  *
20  */
21 public class JsonAppenderTest {
22
23     public JsonAppenderTest() {
24     }
25
26     @BeforeClass
27     public static void setUpClass() throws Exception{
28     }
29
30     @AfterClass
31     public static void tearDownClass() throws Exception{
32     }
33
34     @Before
35     public void setUp() {
36     }
37
38     @After
39     public void tearDown() {
40     }
41
42     /**
43      * Test of Constructor, of class JsonAppender.
44      */
45     @Test
46     public void testConstructor(){
47         System.out.println("constructor");
48
49         JsonAppender appender;
50
51         try{
52             appender = new JsonAppender(null);
53             fail();
54         }catch(NullPointerException e){
55             //GOOD
56         }
57
58         appender = new JsonAppender(new StringBuilder());
59         assertFalse(appender.hasIOException());
60         assertNull(appender.getIOException());
61
62         return;
63     }
64
65     /**
66      * Test of pushComposition method, of class JsonAppender.
67      */
68     @Test
69     public void testPushPopComposition(){
70         System.out.println("pushComposition");
71
72         JsonAppender appender = new JsonAppender(new StringBuilder());
73
74         try{
75             appender.popComposition();
76             fail();
77         }catch(EmptyStackException e){
78             //GOOD
79         }
80         assertEquals(0, appender.nestDepth());
81         assertTrue(appender.isNestEmpty());
82
83         JsObject obj1 = new JsObject();
84         JsObject obj2 = new JsObject();
85         JsArray array1 = new JsArray();
86         JsArray array2 = new JsArray();
87
88         appender.pushComposition(obj1);
89         appender.pushComposition(array1);
90         appender.pushComposition(obj2);
91         appender.pushComposition(array2);
92
93         assertEquals(4, appender.nestDepth());
94         assertFalse(appender.isNestEmpty());
95
96         assertEquals(array2, appender.popComposition());
97         assertEquals(obj2, appender.popComposition());
98         assertEquals(array1, appender.popComposition());
99         assertEquals(obj1, appender.popComposition());
100
101         try{
102             appender.popComposition();
103             fail();
104         }catch(EmptyStackException e){
105             //GOOD
106         }
107         assertEquals(0, appender.nestDepth());
108         assertTrue(appender.isNestEmpty());
109
110         return;
111     }
112
113     /**
114      * Test of hasChildDumped setChildDumped method, of class JsonAppender.
115      */
116     @Test
117     public void testHasSetChildDumped(){
118         System.out.println("hasChildDumped");
119
120         JsonAppender appender;
121
122         appender = new JsonAppender(new StringBuilder());
123         assertFalse(appender.hasChildDumped());
124         appender.setChildDumped();
125         assertFalse(appender.hasChildDumped());
126
127         appender.pushComposition(new JsObject());
128         assertFalse(appender.hasChildDumped());
129         appender.setChildDumped();
130         assertTrue(appender.hasChildDumped());
131
132         appender.pushComposition(new JsObject());
133         assertFalse(appender.hasChildDumped());
134
135         appender.popComposition();
136         assertTrue(appender.hasChildDumped());
137
138         return;
139     }
140
141     /**
142      * Test of isArrayContext method, of class JsonAppender.
143      */
144     @Test
145     public void testIsArrayContext(){
146         System.out.println("isArrayContext");
147         return;
148     }
149
150     /**
151      * Test of getIOException method, of class JsonAppender.
152      */
153     @Test
154     public void testGetIOException() throws Exception{
155         System.out.println("getIOException");
156
157         Reader reader = new StringReader("[1,2,3,4,5]");
158         JsComposition root = Json.parseJson(reader);
159
160         Appendable app = new TroubleAppender(3);
161         JsonAppender appender = new JsonAppender(app);
162
163         assertFalse(appender.hasIOException());
164         assertNull(appender.getIOException());
165
166         try{
167             appender.append("abcde");
168             fail();
169         }catch(JsVisitException e){
170             assertTrue(appender.hasIOException());
171             assertEquals(e.getCause(), appender.getIOException());
172         }
173
174         return;
175     }
176
177     /**
178      * Test of putPairName method, of class JsonAppender.
179      */
180     @Test
181     public void testPutPairName() throws Exception{
182         System.out.println("putPairName");
183
184         Appendable app;
185         JsonAppender appender;
186
187         app = new TroubleAppender(1);
188         appender = new JsonAppender(app);
189
190         try{
191             appender.putPairName("A");
192         }catch(JsVisitException e){
193             assertTrue(appender.hasIOException());
194             assertEquals(e.getCause(), appender.getIOException());
195         }
196
197         return;
198     }
199
200     /**
201      * Test of append method, of class JsonAppender.
202      */
203     @Test
204     public void testAppend() throws Exception{
205         System.out.println("append");
206
207         Appendable app;
208         JsonAppender appender;
209
210         app = new TroubleAppender(3);
211         appender = new JsonAppender(app);
212         appender.append('0');
213         appender.append('1');
214         appender.append('2');
215         try{
216             appender.append('3');
217         }catch(JsVisitException e){
218             assertTrue(appender.hasIOException());
219             assertEquals(e.getCause(), appender.getIOException());
220         }
221
222         app = new TroubleAppender(3);
223         appender = new JsonAppender(app);
224         try{
225             appender.append("1234");
226         }catch(JsVisitException e){
227             assertTrue(appender.hasIOException());
228             assertEquals(e.getCause(), appender.getIOException());
229         }
230
231         return;
232     }
233
234     /**
235      * Test of flush method, of class JsonAppender.
236      */
237     @Test
238     public void testFlush() throws Exception{
239         System.out.println("flush");
240
241         Appendable app = new TroubleAppender(3);
242         JsonAppender appender = new JsonAppender(app);
243
244         try{
245             appender.flush();
246             fail();
247         }catch(JsVisitException e){
248             assertTrue(appender.hasIOException());
249             assertEquals(e.getCause(), appender.getIOException());
250         }
251
252         return;
253     }
254
255     /**
256      * Test of hasIOException method, of class JsonAppender.
257      */
258     @Test
259     public void testHasIOException(){
260         System.out.println("hasIOException");
261         return;
262     }
263
264 }