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;
16 import static org.junit.Assert.*;
21 public class JsonAppenderTest {
23 public JsonAppenderTest() {
27 public static void setUpClass() throws Exception{
31 public static void tearDownClass() throws Exception{
39 public void tearDown() {
43 * Test of Constructor, of class JsonAppender.
46 public void testConstructor(){
47 System.out.println("constructor");
49 JsonAppender appender;
52 appender = new JsonAppender(null);
54 }catch(NullPointerException e){
58 appender = new JsonAppender(new StringBuilder());
59 assertFalse(appender.hasIOException());
60 assertNull(appender.getIOException());
66 * Test of pushComposition method, of class JsonAppender.
69 public void testPushPopComposition(){
70 System.out.println("pushComposition");
72 JsonAppender appender = new JsonAppender(new StringBuilder());
75 appender.popComposition();
77 }catch(EmptyStackException e){
80 assertEquals(0, appender.nestDepth());
81 assertTrue(appender.isNestEmpty());
83 JsObject obj1 = new JsObject();
84 JsObject obj2 = new JsObject();
85 JsArray array1 = new JsArray();
86 JsArray array2 = new JsArray();
88 appender.pushComposition(obj1);
89 appender.pushComposition(array1);
90 appender.pushComposition(obj2);
91 appender.pushComposition(array2);
93 assertEquals(4, appender.nestDepth());
94 assertFalse(appender.isNestEmpty());
96 assertEquals(array2, appender.popComposition());
97 assertEquals(obj2, appender.popComposition());
98 assertEquals(array1, appender.popComposition());
99 assertEquals(obj1, appender.popComposition());
102 appender.popComposition();
104 }catch(EmptyStackException e){
107 assertEquals(0, appender.nestDepth());
108 assertTrue(appender.isNestEmpty());
114 * Test of hasChildDumped setChildDumped method, of class JsonAppender.
117 public void testHasSetChildDumped(){
118 System.out.println("hasChildDumped");
120 JsonAppender appender;
122 appender = new JsonAppender(new StringBuilder());
123 assertFalse(appender.hasChildDumped());
124 appender.setChildDumped();
125 assertFalse(appender.hasChildDumped());
127 appender.pushComposition(new JsObject());
128 assertFalse(appender.hasChildDumped());
129 appender.setChildDumped();
130 assertTrue(appender.hasChildDumped());
132 appender.pushComposition(new JsObject());
133 assertFalse(appender.hasChildDumped());
135 appender.popComposition();
136 assertTrue(appender.hasChildDumped());
142 * Test of isArrayContext method, of class JsonAppender.
145 public void testIsArrayContext(){
146 System.out.println("isArrayContext");
151 * Test of getIOException method, of class JsonAppender.
154 public void testGetIOException() throws Exception{
155 System.out.println("getIOException");
157 Reader reader = new StringReader("[1,2,3,4,5]");
158 JsComposition root = Json.parseJson(reader);
160 Appendable app = new TroubleAppender(3);
161 JsonAppender appender = new JsonAppender(app);
163 assertFalse(appender.hasIOException());
164 assertNull(appender.getIOException());
167 appender.append("abcde");
169 }catch(JsVisitException e){
170 assertTrue(appender.hasIOException());
171 assertEquals(e.getCause(), appender.getIOException());
178 * Test of putPairName method, of class JsonAppender.
181 public void testPutPairName() throws Exception{
182 System.out.println("putPairName");
185 JsonAppender appender;
187 app = new TroubleAppender(1);
188 appender = new JsonAppender(app);
191 appender.putPairName("A");
192 }catch(JsVisitException e){
193 assertTrue(appender.hasIOException());
194 assertEquals(e.getCause(), appender.getIOException());
201 * Test of append method, of class JsonAppender.
204 public void testAppend() throws Exception{
205 System.out.println("append");
208 JsonAppender appender;
210 app = new TroubleAppender(3);
211 appender = new JsonAppender(app);
212 appender.append('0');
213 appender.append('1');
214 appender.append('2');
216 appender.append('3');
217 }catch(JsVisitException e){
218 assertTrue(appender.hasIOException());
219 assertEquals(e.getCause(), appender.getIOException());
222 app = new TroubleAppender(3);
223 appender = new JsonAppender(app);
225 appender.append("1234");
226 }catch(JsVisitException e){
227 assertTrue(appender.hasIOException());
228 assertEquals(e.getCause(), appender.getIOException());
235 * Test of flush method, of class JsonAppender.
238 public void testFlush() throws Exception{
239 System.out.println("flush");
241 Appendable app = new TroubleAppender(3);
242 JsonAppender appender = new JsonAppender(app);
247 }catch(JsVisitException e){
248 assertTrue(appender.hasIOException());
249 assertEquals(e.getCause(), appender.getIOException());
256 * Test of hasIOException method, of class JsonAppender.
259 public void testHasIOException(){
260 System.out.println("hasIOException");