55import static org .mockito .Mockito .mock ;
66import static org .mockito .Mockito .verify ;
77
8+ import java .util .concurrent .ExecutorService ;
9+ import java .util .concurrent .ThreadFactory ;
810import java .util .concurrent .TimeUnit ;
911import org .junit .Before ;
1012import org .junit .Test ;
@@ -113,6 +115,12 @@ public void duplicateTransformer() {
113115 }
114116 }
115117
118+ @ Test
119+ public void buildsWithValidTransformer () {
120+ Analytics analytics = builder .messageTransformer (mock (MessageTransformer .class )).build ();
121+ assertThat (analytics ).isNotNull ();
122+ }
123+
116124 @ Test
117125 public void nullInterceptor () {
118126 try {
@@ -134,6 +142,12 @@ public void duplicateInterceptor() {
134142 }
135143 }
136144
145+ @ Test
146+ public void buildsWithValidInterceptor () {
147+ Analytics analytics = builder .messageInterceptor (mock (MessageInterceptor .class )).build ();
148+ assertThat (analytics ).isNotNull ();
149+ }
150+
137151 @ Test
138152 public void invalidFlushQueueSize () {
139153 try {
@@ -151,6 +165,12 @@ public void invalidFlushQueueSize() {
151165 }
152166 }
153167
168+ @ Test
169+ public void buildsWithValidFlushQueueSize () {
170+ Analytics analytics = builder .flushQueueSize (1 ).build ();
171+ assertThat (analytics ).isNotNull ();
172+ }
173+
154174 @ Test
155175 public void invalidFlushInterval () {
156176 try {
@@ -176,6 +196,12 @@ public void invalidFlushInterval() {
176196 }
177197 }
178198
199+ @ Test
200+ public void buildsWithValidFlushInterval () {
201+ Analytics analytics = builder .flushInterval (2 , TimeUnit .SECONDS ).build ();
202+ assertThat (analytics ).isNotNull ();
203+ }
204+
179205 @ Test
180206 public void nullNetworkExecutor () {
181207 try {
@@ -186,6 +212,12 @@ public void nullNetworkExecutor() {
186212 }
187213 }
188214
215+ @ Test
216+ public void buildsWithValidNetworkExecutor () {
217+ Analytics analytics = builder .networkExecutor (mock (ExecutorService .class )).build ();
218+ assertThat (analytics ).isNotNull ();
219+ }
220+
189221 @ Test
190222 public void nullEndpoint () {
191223 try {
@@ -213,6 +245,12 @@ public void emptyEndpoint() {
213245 }
214246 }
215247
248+ @ Test
249+ public void buildsWithValidEndpoint () {
250+ Analytics analytics = builder .endpoint ("https://api.segment.io" ).build ();
251+ assertThat (analytics ).isNotNull ();
252+ }
253+
216254 @ Test
217255 public void nullThreadFactory () {
218256 try {
@@ -223,6 +261,12 @@ public void nullThreadFactory() {
223261 }
224262 }
225263
264+ @ Test
265+ public void buildsWithThreadFactory () {
266+ Analytics analytics = builder .threadFactory (mock (ThreadFactory .class )).build ();
267+ assertThat (analytics ).isNotNull ();
268+ }
269+
226270 @ Test
227271 public void nullCallback () {
228272 try {
@@ -233,6 +277,30 @@ public void nullCallback() {
233277 }
234278 }
235279
280+ @ Test
281+ public void duplicateCallback () {
282+ Callback callback = mock (Callback .class );
283+ try {
284+ builder .callback (callback ).callback (callback );
285+ } catch (IllegalStateException e ) {
286+ assertThat (e ).hasMessage ("Callback is already registered." );
287+ }
288+ }
289+
290+ @ Test
291+ public void buildsWithValidCallback () {
292+ Analytics analytics = builder .callback (mock (Callback .class )).build ();
293+ assertThat (analytics ).isNotNull ();
294+ }
295+
296+ @ Test
297+ public void multipleCallbacks () {
298+ Analytics analytics =
299+ builder .callback (mock (Callback .class )).callback (mock (Callback .class )).build ();
300+
301+ assertThat (analytics ).isNotNull ();
302+ }
303+
236304 @ Test
237305 public void nullPlugin () {
238306 try {
0 commit comments