1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.supercsv.cellprocessor.constraint;
17  
18  import static org.junit.Assert.assertEquals;
19  import static org.supercsv.SuperCsvTestUtils.ANONYMOUS_CSVCONTEXT;
20  
21  import java.util.HashSet;
22  import java.util.Set;
23  
24  import org.junit.Before;
25  import org.junit.Test;
26  import org.supercsv.cellprocessor.ift.CellProcessor;
27  import org.supercsv.exception.SuperCsvCellProcessorException;
28  import org.supercsv.exception.SuperCsvConstraintViolationException;
29  import org.supercsv.mock.IdentityTransform;
30  
31  
32  
33  
34  
35  
36  
37  public class IsIncludedInTest {
38  	
39  	private static final Set<Object> VALUE_SET = new HashSet<Object>();
40  	
41  	private static final Integer ONE = 1;
42  	private static final String TWO = "Two";
43  	private static final Double THREE = 3.0;
44  	
45  	static {
46  		VALUE_SET.add(ONE);
47  		VALUE_SET.add(TWO);
48  		VALUE_SET.add(THREE);
49  	}
50  	
51  	private CellProcessor processor;
52  	private CellProcessor processor2;
53  	private CellProcessor processorChain;
54  	private CellProcessor processorChain2;
55  	
56  	
57  
58  
59  	@Before
60  	public void setUp() {
61  		processor = new IsIncludedIn(VALUE_SET);
62  		processor2 = new IsIncludedIn(VALUE_SET.toArray());
63  		processorChain = new IsIncludedIn(VALUE_SET, new IdentityTransform());
64  		processorChain2 = new IsIncludedIn(VALUE_SET.toArray(), new IdentityTransform());
65  	}
66  	
67  	
68  
69  
70  	@Test
71  	public void testValidInput() {
72  		assertEquals(ONE, processor.execute(ONE, ANONYMOUS_CSVCONTEXT));
73  		assertEquals(ONE, processor2.execute(ONE, ANONYMOUS_CSVCONTEXT));
74  		assertEquals(ONE, processorChain.execute(ONE, ANONYMOUS_CSVCONTEXT));
75  		assertEquals(ONE, processorChain2.execute(ONE, ANONYMOUS_CSVCONTEXT));
76  		
77  		assertEquals(TWO, processor.execute(TWO, ANONYMOUS_CSVCONTEXT));
78  		assertEquals(TWO, processor2.execute(TWO, ANONYMOUS_CSVCONTEXT));
79  		assertEquals(TWO, processorChain.execute(TWO, ANONYMOUS_CSVCONTEXT));
80  		assertEquals(TWO, processorChain2.execute(TWO, ANONYMOUS_CSVCONTEXT));
81  		
82  		assertEquals(THREE, processor.execute(THREE, ANONYMOUS_CSVCONTEXT));
83  		assertEquals(THREE, processor2.execute(THREE, ANONYMOUS_CSVCONTEXT));
84  		assertEquals(THREE, processorChain.execute(THREE, ANONYMOUS_CSVCONTEXT));
85  		assertEquals(THREE, processorChain2.execute(THREE, ANONYMOUS_CSVCONTEXT));
86  		
87  	}
88  	
89  	
90  
91  
92  	@Test(expected = SuperCsvConstraintViolationException.class)
93  	public void testWithInvalidInput() {
94  		processor.execute(4, ANONYMOUS_CSVCONTEXT);
95  	}
96  	
97  	
98  
99  
100 	@Test(expected = SuperCsvCellProcessorException.class)
101 	public void testWithNull() {
102 		processor.execute(null, ANONYMOUS_CSVCONTEXT);
103 	}
104 	
105 	
106 
107 
108 	@Test(expected = NullPointerException.class)
109 	public void testConstructionWithNullArray() {
110 		new IsIncludedIn((Object[]) null);
111 	}
112 	
113 	
114 
115 
116 	@Test(expected = IllegalArgumentException.class)
117 	public void testConstructionWithEmptyArray() {
118 		new IsIncludedIn(new Object[] {});
119 	}
120 	
121 	
122 
123 
124 	@Test(expected = NullPointerException.class)
125 	public void testConstructionWithNullSet() {
126 		new IsIncludedIn((Set<Object>) null);
127 	}
128 	
129 	
130 
131 
132 	@Test(expected = IllegalArgumentException.class)
133 	public void testConstructionWithEmptySet() {
134 		new IsIncludedIn(new HashSet<Object>());
135 	}
136 	
137 }