1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.supercsv.encoder;
17  
18  import static org.junit.Assert.assertEquals;
19  
20  import org.junit.Test;
21  import org.supercsv.prefs.CsvPreference;
22  import org.supercsv.util.CsvContext;
23  
24  
25  
26  
27  
28  
29  public class SelectiveCsvEncoderTest {
30  	
31  	private static final String UNESCAPED = "\"Escape!\", he yelled.";
32  	
33  	private static final String ESCAPED = "\"\"\"Escape!\"\", he yelled.\"";
34  	
35  	
36  
37  
38  	@Test
39  	public void testEncodeWithIntArray() {
40  		final SelectiveCsvEncoder encoder = new SelectiveCsvEncoder(2, 3);
41  		testEncode(encoder);
42  	}
43  	
44  	
45  
46  
47  	@Test
48  	public void testEncodeWithBoolArray() {
49  		final SelectiveCsvEncoder encoder = new SelectiveCsvEncoder(new boolean[]{false, true, true, false});
50  		testEncode(encoder);
51  	}
52  	
53  	
54  
55  
56  
57  
58  
59  	private void testEncode(final CsvEncoder encoder) {
60  		final CsvContext context = new CsvContext(1, 1, 1);
61  		assertEquals(UNESCAPED, encoder.encode(UNESCAPED, context, CsvPreference.STANDARD_PREFERENCE));
62  		context.setColumnNumber(2);
63  		assertEquals(ESCAPED, encoder.encode(UNESCAPED, context, CsvPreference.STANDARD_PREFERENCE));
64  		context.setColumnNumber(3);
65  		assertEquals(ESCAPED, encoder.encode(UNESCAPED, context, CsvPreference.STANDARD_PREFERENCE));
66  		context.setColumnNumber(4);
67  		assertEquals(UNESCAPED, encoder.encode(UNESCAPED, context, CsvPreference.STANDARD_PREFERENCE));
68  	}
69  	
70  	
71  
72  
73  	@Test
74  	public void testEncodeWithNoColumnNumbers() {
75  		final SelectiveCsvEncoder encoder = new SelectiveCsvEncoder();
76  		final CsvContext context = new CsvContext(1, 1, 1);
77  		assertEquals(UNESCAPED, encoder.encode(UNESCAPED, context, CsvPreference.STANDARD_PREFERENCE));
78  	}
79  	
80  	
81  
82  
83  	@Test(expected = NullPointerException.class)
84  	public void testIntArrayConstructorWithNull() {
85  		new SelectiveCsvEncoder((int[]) null);
86  	}
87  	
88  	
89  
90  
91  	@Test(expected = NullPointerException.class)
92  	public void testBoolArrayConstructorWithNull() {
93  		new SelectiveCsvEncoder((boolean[]) null);
94  	}
95  	
96  }