1
2
3
4
5
6
7
8
9 package com.codebox.bean;
10
11 import com.codebox.enums.CheckClear;
12 import com.codebox.enums.CheckConstructor;
13 import com.codebox.enums.CheckEquals;
14 import com.codebox.enums.CheckSerialize;
15 import com.codebox.enums.LoadData;
16 import com.codebox.enums.SkipStrictSerialize;
17 import com.codebox.instance.ConstructorInstance;
18
19 import java.util.Arrays;
20
21
22
23
24
25
26
27
28
29 public class JavaBeanTesterBuilder<T, E> {
30
31
32 private final JavaBeanTesterWorker<T, E> worker;
33
34
35
36
37
38
39
40 JavaBeanTesterBuilder(final Class<T> clazz) {
41 this.worker = new JavaBeanTesterWorker<>(clazz);
42 }
43
44
45
46
47
48
49
50
51
52 JavaBeanTesterBuilder(final Class<T> clazz, final Class<E> extension) {
53 this.worker = new JavaBeanTesterWorker<>(clazz, extension);
54 }
55
56
57
58
59
60
61 public JavaBeanTesterBuilder<T, E> checkClear() {
62 return this.checkClear(true);
63 }
64
65
66
67
68
69
70
71
72
73 public JavaBeanTesterBuilder<T, E> checkClear(final boolean value) {
74 this.worker.setCheckClear(value ? CheckClear.ON : CheckClear.OFF);
75 return this;
76 }
77
78
79
80
81
82
83 public JavaBeanTesterBuilder<T, E> checkConstructor() {
84 return this.checkConstructor(true);
85 }
86
87
88
89
90
91
92
93
94
95 public JavaBeanTesterBuilder<T, E> checkConstructor(final boolean value) {
96 this.worker.setCheckConstructor(value ? CheckConstructor.ON : CheckConstructor.OFF);
97 return this;
98 }
99
100
101
102
103
104
105 public JavaBeanTesterBuilder<T, E> checkEquals() {
106 return this.checkEquals(true);
107 }
108
109
110
111
112
113
114
115
116
117 public JavaBeanTesterBuilder<T, E> checkEquals(final boolean value) {
118 this.worker.setCheckEquals(value ? CheckEquals.ON : CheckEquals.OFF);
119 return this;
120 }
121
122
123
124
125
126
127 public JavaBeanTesterBuilder<T, E> checkSerializable() {
128 return this.checkSerializable(true);
129 }
130
131
132
133
134
135
136
137
138
139 public JavaBeanTesterBuilder<T, E> checkSerializable(final boolean value) {
140 this.worker.setCheckSerializable(value ? CheckSerialize.ON : CheckSerialize.OFF);
141 return this;
142 }
143
144
145
146
147
148
149 public JavaBeanTesterBuilder<T, E> loadData() {
150 return this.loadData(true);
151 }
152
153
154
155
156
157
158
159
160
161 public JavaBeanTesterBuilder<T, E> loadData(final boolean value) {
162 this.worker.setLoadData(value ? LoadData.ON : LoadData.OFF);
163 return this;
164 }
165
166
167
168
169
170
171
172
173
174 public JavaBeanTesterBuilder<T, E> skipStrictSerializable() {
175 this.worker.setSkipStrictSerializable(SkipStrictSerialize.ON);
176 return this;
177 }
178
179
180
181
182
183
184
185
186
187 public JavaBeanTesterBuilder<T, E> skip(final String... propertyNames) {
188 if (propertyNames != null) {
189 this.worker.getSkipThese().addAll(Arrays.asList(propertyNames));
190 }
191 return this;
192 }
193
194
195
196
197 public void test() {
198 this.worker.test();
199 }
200
201
202
203
204 public void testPrivateConstructor() {
205 ConstructorInstance.inaccessible(this.worker.getClazz());
206 }
207
208
209
210
211 public void testObjectMethods() {
212 this.worker.equalsHashCodeToStringSymmetricTest();
213 }
214
215
216
217
218
219
220
221 public void testInstance(final T instance) {
222 this.worker.getterSetterTests(instance);
223 }
224
225
226
227
228
229
230
231
232
233 public void testEquals(final T instance, final T expected) {
234 this.worker.equalsTests(instance, expected);
235 }
236
237 }