1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.supercsv.util;
17  
18  import static org.junit.Assert.assertEquals;
19  import static org.junit.Assert.assertNotNull;
20  import static org.junit.Assert.assertNull;
21  
22  import org.junit.Before;
23  import org.junit.Test;
24  
25  
26  
27  
28  
29  
30  public class BeanInterfaceProxyTest {
31  	
32  	private TestInterface testInterface;
33  	
34  	
35  
36  
37  	@Before
38  	public void setUp() {
39  		testInterface = BeanInterfaceProxy.createProxy(TestInterface.class);
40  	}
41  	
42  	
43  
44  
45  	@Test
46  	public void testProxy() {
47  		
48  		assertNull(testInterface.getValue());
49  		
50  		
51  		String value = "value";
52  		testInterface.setValue(value);
53  		
54  		
55  		assertEquals(value, testInterface.getValue());
56  		
57  		
58  		testInterface.setValue(null);
59  		
60  		
61  		assertNull(testInterface.getValue());
62  	}
63  	
64  	
65  
66  
67  	@Test
68  	public void testChainedSetters() {
69  		
70  		assertNull(testInterface.getValue());
71  		
72  		
73  		String value = "value";
74  		String value2 = "value2";
75  		testInterface.setValue(value).setValue2(value2);
76  		
77  		
78  		assertEquals(value, testInterface.getValue());
79  		assertEquals(value2, testInterface.getValue2());
80  	}
81  	
82  	
83  
84  
85  	@Test(expected = NullPointerException.class)
86  	public void testCreateProxyWithNull() {
87  		BeanInterfaceProxy.createProxy(null);
88  	}
89  	
90  	
91  
92  
93  	@Test(expected = IllegalArgumentException.class)
94  	public void testNotGetterOrSetter() {
95  		testInterface.isValueSet();
96  	}
97  	
98  	
99  
100 
101 	@Test(expected = IllegalArgumentException.class)
102 	public void testGetterWithParam() {
103 		testInterface.getWithParam("param");
104 	}
105 	
106 	
107 
108 
109 	@Test(expected = IllegalArgumentException.class)
110 	public void testMultiParamSetter() {
111 		testInterface.setManyValues("value1", "value2");
112 	}
113 	
114 	
115 
116 
117 	@Test(expected = IllegalArgumentException.class)
118 	public void testSetterWithNoParams() {
119 		testInterface.setNothing();
120 	}
121 	
122 	
123 
124 
125 
126 	@Test
127 	public void testGetClass() {
128 		assertNotNull(testInterface.getClass());
129 		
130 	}
131 	
132 	
133 
134 
135 	private interface TestInterface {
136 		
137 		public TestInterface setValue(String value); 
138 		
139 		public void setValue2(String value);
140 		
141 		public String getValue();
142 		
143 		public String getValue2();
144 		
145 		public String getWithParam(String value1); 
146 		
147 		public void setManyValues(String value1, String value2); 
148 		
149 		public void setNothing(); 
150 		
151 		public boolean isValueSet(); 
152 		
153 	}
154 	
155 }