2 * License : The MIT License
3 * Copyright(c) 2009 olyutorskii
6 package jp.sourceforge.jovsonz;
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;
17 import static org.junit.Assert.*;
22 public class JsonAppenderTest {
24 public JsonAppenderTest() {
28 public static void setUpClass() throws Exception{
32 public static void tearDownClass() throws Exception{
40 public void tearDown() {
44 * Test of Constructor, of class JsonAppender.
47 public void testConstructor(){
48 System.out.println("constructor");
50 JsonAppender appender;
53 appender = new JsonAppender(null);
55 }catch(NullPointerException e){
59 appender = new JsonAppender(new StringBuilder());
60 assertFalse(appender.hasIOException());
61 assertNull(appender.getIOException());
67 * Test of pushComposition method, of class JsonAppender.
70 public void testPushPopComposition(){
71 System.out.println("pushComposition");
73 JsonAppender appender = new JsonAppender(new StringBuilder());
76 appender.popComposition();
78 }catch(EmptyStackException e){
81 assertEquals(0, appender.nestDepth());
82 assertTrue(appender.isNestEmpty());
84 JsObject obj1 = new JsObject();
85 JsObject obj2 = new JsObject();
86 JsArray array1 = new JsArray();
87 JsArray array2 = new JsArray();
89 appender.pushComposition(obj1);
90 appender.pushComposition(array1);
91 appender.pushComposition(obj2);
92 appender.pushComposition(array2);
94 assertEquals(4, appender.nestDepth());
95 assertFalse(appender.isNestEmpty());
97 assertEquals(array2, appender.popComposition());
98 assertEquals(obj2, appender.popComposition());
99 assertEquals(array1, appender.popComposition());
100 assertEquals(obj1, appender.popComposition());
103 appender.popComposition();
105 }catch(EmptyStackException e){
108 assertEquals(0, appender.nestDepth());
109 assertTrue(appender.isNestEmpty());
115 * Test of hasChildDumped setChildDumped method, of class JsonAppender.
118 public void testHasSetChildDumped(){
119 System.out.println("hasChildDumped");
121 JsonAppender appender;
123 appender = new JsonAppender(new StringBuilder());
124 assertFalse(appender.hasChildDumped());
125 appender.setChildDumped();
126 assertFalse(appender.hasChildDumped());
128 appender.pushComposition(new JsObject());
129 assertFalse(appender.hasChildDumped());
130 appender.setChildDumped();
131 assertTrue(appender.hasChildDumped());
133 appender.pushComposition(new JsObject());
134 assertFalse(appender.hasChildDumped());
136 appender.popComposition();
137 assertTrue(appender.hasChildDumped());
143 * Test of isArrayContext method, of class JsonAppender.
146 public void testIsArrayContext(){
147 System.out.println("isArrayContext");
152 * Test of getIOException method, of class JsonAppender.
155 public void testGetIOException() throws Exception{
156 System.out.println("getIOException");
158 Reader reader = new StringReader("[1,2,3,4,5]");
159 JsComposition<?> root = Json.parseJson(reader);
161 Appendable app = new TroubleAppender(3);
162 JsonAppender appender = new JsonAppender(app);
164 assertFalse(appender.hasIOException());
165 assertNull(appender.getIOException());
168 appender.append("abcde");
170 }catch(JsVisitException e){
171 assertTrue(appender.hasIOException());
172 assertEquals(e.getCause(), appender.getIOException());
179 * Test of putPairName method, of class JsonAppender.
182 public void testPutPairName() throws Exception{
183 System.out.println("putPairName");
186 JsonAppender appender;
188 app = new TroubleAppender(1);
189 appender = new JsonAppender(app);
192 appender.putPairName("A");
193 }catch(JsVisitException e){
194 assertTrue(appender.hasIOException());
195 assertEquals(e.getCause(), appender.getIOException());
202 * Test of append method, of class JsonAppender.
205 public void testAppend() throws Exception{
206 System.out.println("append");
209 JsonAppender appender;
211 app = new TroubleAppender(3);
212 appender = new JsonAppender(app);
213 appender.append('0');
214 appender.append('1');
215 appender.append('2');
217 appender.append('3');
218 }catch(JsVisitException e){
219 assertTrue(appender.hasIOException());
220 assertEquals(e.getCause(), appender.getIOException());
223 app = new TroubleAppender(3);
224 appender = new JsonAppender(app);
226 appender.append("1234");
227 }catch(JsVisitException e){
228 assertTrue(appender.hasIOException());
229 assertEquals(e.getCause(), appender.getIOException());
236 * Test of flush method, of class JsonAppender.
239 public void testFlush() throws Exception{
240 System.out.println("flush");
242 Appendable app = new TroubleAppender(3);
243 JsonAppender appender = new JsonAppender(app);
248 }catch(JsVisitException e){
249 assertTrue(appender.hasIOException());
250 assertEquals(e.getCause(), appender.getIOException());
257 * Test of hasIOException method, of class JsonAppender.
260 public void testHasIOException(){
261 System.out.println("hasIOException");