Skip to content

Commit 5439901

Browse files
authored
Refactor private constructor checker into a utility class. (ReactiveX#4133)
1 parent 5c74757 commit 5439901

22 files changed

+111
-139
lines changed

src/test/java/rx/EventStreamTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
*/
1616
package rx;
1717

18-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
19-
2018
import org.junit.Test;
2119

2220
public class EventStreamTest {
2321
@Test
2422
public void constructorShouldBePrivate() {
25-
PrivateConstructorChecker.forClass(EventStream.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
23+
TestUtil.checkUtilityClass(EventStream.class);
2624
}
2725
}

src/test/java/rx/TestUtil.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* Copyright 2014 Netflix, Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package rx;
18+
19+
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
20+
21+
/**
22+
* Common test utility methods.
23+
*/
24+
public enum TestUtil {
25+
;
26+
27+
/**
28+
* Verifies that the given class has a private constructor that
29+
* throws IllegalStateException("No instances!") upon instantiation.
30+
* @param clazz the target class to check
31+
*/
32+
public static void checkUtilityClass(Class<?> clazz) {
33+
PrivateConstructorChecker
34+
.forClass(clazz)
35+
.expectedTypeOfException(IllegalStateException.class)
36+
.expectedExceptionMessage("No instances!")
37+
.check();
38+
}
39+
}

src/test/java/rx/exceptions/ExceptionsTest.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,21 @@
1515
*/
1616
package rx.exceptions;
1717

18-
import static org.junit.Assert.assertTrue;
19-
import static org.junit.Assert.fail;
20-
21-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
18+
import static org.junit.Assert.*;
2219

2320
import java.util.concurrent.atomic.AtomicInteger;
2421

2522
import org.junit.Test;
2623

27-
import rx.Single;
28-
import rx.SingleSubscriber;
29-
import rx.Subscriber;
30-
import rx.Observable;
31-
import rx.Observer;
32-
import rx.functions.Action1;
33-
import rx.functions.Func1;
24+
import rx.*;
25+
import rx.functions.*;
3426
import rx.observables.GroupedObservable;
3527
import rx.subjects.PublishSubject;
3628

3729
public class ExceptionsTest {
3830
@Test
3931
public void constructorShouldBePrivate() {
40-
PrivateConstructorChecker.forClass(Exceptions.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
32+
TestUtil.checkUtilityClass(Exceptions.class);
4133
}
4234

4335
@Test(expected = OnErrorNotImplementedException.class)

src/test/java/rx/functions/ActionsTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@
1515
*/
1616
package rx.functions;
1717

18-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
19-
20-
import org.junit.Test;
18+
import static org.junit.Assert.*;
2119

2220
import java.util.Arrays;
2321
import java.util.concurrent.atomic.AtomicLong;
2422

25-
import static org.junit.Assert.assertEquals;
26-
import static org.junit.Assert.assertNull;
23+
import org.junit.Test;
24+
25+
import rx.TestUtil;
2726

2827
public class ActionsTest {
2928

@@ -274,6 +273,6 @@ public void call(Object... args) {
274273

275274
@Test
276275
public void constructorShouldBePrivate() {
277-
PrivateConstructorChecker.forClass(Actions.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
276+
TestUtil.checkUtilityClass(Actions.class);
278277
}
279278
}

src/test/java/rx/functions/FunctionsTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515
*/
1616
package rx.functions;
1717

18-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
19-
20-
import org.junit.Test;
18+
import static org.junit.Assert.assertEquals;
2119

2220
import java.util.Arrays;
2321
import java.util.concurrent.atomic.AtomicLong;
2422

25-
import static org.junit.Assert.assertEquals;
23+
import org.junit.Test;
24+
25+
import rx.TestUtil;
2626

2727
public class FunctionsTest {
2828
@Test
2929
public void constructorShouldBePrivate() {
30-
PrivateConstructorChecker.forClass(Functions.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
30+
TestUtil.checkUtilityClass(Functions.class);
3131
}
3232

3333
@Test(expected = RuntimeException.class)

src/test/java/rx/internal/operators/BackpressureUtilsTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@
1515
*/
1616
package rx.internal.operators;
1717

18-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
18+
import static org.junit.Assert.assertEquals;
1919

2020
import org.junit.Test;
21-
import static org.junit.Assert.*;
21+
22+
import rx.TestUtil;
2223

2324
public class BackpressureUtilsTest {
2425
@Test
2526
public void constructorShouldBePrivate() {
26-
PrivateConstructorChecker.forClass(BackpressureUtils.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
27+
TestUtil.checkUtilityClass(BackpressureUtils.class);
2728
}
2829

2930
@Test

src/test/java/rx/internal/operators/BlockingOperatorLatestTest.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,21 @@
1515
*/
1616
package rx.internal.operators;
1717

18-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
19-
20-
import java.util.Iterator;
21-
import java.util.NoSuchElementException;
18+
import java.util.*;
2219
import java.util.concurrent.TimeUnit;
2320

24-
import org.junit.Assert;
25-
26-
import org.junit.Test;
21+
import org.junit.*;
2722

2823
import rx.Observable;
24+
import rx.TestUtil;
2925
import rx.observables.BlockingObservable;
3026
import rx.schedulers.TestScheduler;
3127
import rx.subjects.PublishSubject;
3228

3329
public class BlockingOperatorLatestTest {
3430
@Test
3531
public void constructorShouldBePrivate() {
36-
PrivateConstructorChecker.forClass(BlockingOperatorLatest.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
32+
TestUtil.checkUtilityClass(BlockingOperatorLatest.class);
3733
}
3834

3935
@Test(timeout = 1000)

src/test/java/rx/internal/operators/BlockingOperatorMostRecentTest.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,24 @@
1515
*/
1616
package rx.internal.operators;
1717

18-
import static org.junit.Assert.assertEquals;
19-
import static org.junit.Assert.assertFalse;
20-
import static org.junit.Assert.assertTrue;
18+
import static org.junit.Assert.*;
2119
import static rx.internal.operators.BlockingOperatorMostRecent.mostRecent;
2220

23-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
24-
2521
import java.util.Iterator;
2622
import java.util.concurrent.TimeUnit;
2723

28-
import org.junit.Assert;
29-
import org.junit.Test;
24+
import org.junit.*;
3025

31-
import rx.Observable;
26+
import rx.*;
3227
import rx.exceptions.TestException;
3328
import rx.observables.BlockingObservable;
3429
import rx.schedulers.TestScheduler;
35-
import rx.subjects.PublishSubject;
36-
import rx.subjects.Subject;
30+
import rx.subjects.*;
3731

3832
public class BlockingOperatorMostRecentTest {
3933
@Test
4034
public void constructorShouldBePrivate() {
41-
PrivateConstructorChecker.forClass(BlockingOperatorMostRecent.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
35+
TestUtil.checkUtilityClass(BlockingOperatorMostRecent.class);
4236
}
4337

4438
@Test

src/test/java/rx/internal/operators/BlockingOperatorNextTest.java

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,21 @@
1515
*/
1616
package rx.internal.operators;
1717

18-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
18+
import static org.junit.Assert.*;
19+
import static rx.internal.operators.BlockingOperatorNext.next;
1920

20-
import org.junit.Assert;
21-
import org.junit.Test;
21+
import java.util.*;
22+
import java.util.concurrent.*;
23+
import java.util.concurrent.atomic.*;
2224

23-
import java.util.Iterator;
24-
import java.util.NoSuchElementException;
25-
import java.util.concurrent.CountDownLatch;
26-
import java.util.concurrent.TimeUnit;
27-
import java.util.concurrent.atomic.AtomicBoolean;
28-
import java.util.concurrent.atomic.AtomicInteger;
25+
import org.junit.*;
2926

27+
import rx.*;
3028
import rx.Observable;
31-
import rx.Subscriber;
3229
import rx.exceptions.TestException;
3330
import rx.observables.BlockingObservable;
3431
import rx.schedulers.Schedulers;
35-
import rx.subjects.BehaviorSubject;
36-
import rx.subjects.PublishSubject;
37-
import rx.subjects.Subject;
38-
39-
import static org.junit.Assert.assertEquals;
40-
import static org.junit.Assert.assertFalse;
41-
import static org.junit.Assert.assertTrue;
42-
import static org.junit.Assert.fail;
43-
import static rx.internal.operators.BlockingOperatorNext.next;
32+
import rx.subjects.*;
4433

4534
public class BlockingOperatorNextTest {
4635

@@ -74,7 +63,7 @@ public void run() {
7463

7564
@Test
7665
public void constructorShouldBePrivate() {
77-
PrivateConstructorChecker.forClass(BlockingOperatorNext.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
66+
TestUtil.checkUtilityClass(BlockingOperatorNext.class);
7867
}
7968

8069
@Test

src/test/java/rx/internal/operators/BlockingOperatorToFutureTest.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,23 @@
1515
*/
1616
package rx.internal.operators;
1717

18-
import static org.junit.Assert.assertEquals;
19-
import static org.junit.Assert.assertTrue;
20-
import static org.junit.Assert.fail;
18+
import static org.junit.Assert.*;
2119
import static rx.internal.operators.BlockingOperatorToFuture.toFuture;
2220

23-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
24-
25-
import java.util.List;
26-
import java.util.NoSuchElementException;
27-
import java.util.concurrent.CancellationException;
28-
import java.util.concurrent.ExecutionException;
29-
import java.util.concurrent.Future;
30-
import java.util.concurrent.TimeUnit;
21+
import java.util.*;
22+
import java.util.concurrent.*;
3123

3224
import org.junit.Test;
3325

26+
import rx.*;
3427
import rx.Observable;
3528
import rx.Observable.OnSubscribe;
36-
import rx.Subscriber;
3729
import rx.exceptions.TestException;
3830

3931
public class BlockingOperatorToFutureTest {
4032
@Test
4133
public void constructorShouldBePrivate() {
42-
PrivateConstructorChecker.forClass(BlockingOperatorToFuture.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
34+
TestUtil.checkUtilityClass(BlockingOperatorToFuture.class);
4335
}
4436

4537
@Test

src/test/java/rx/internal/operators/BlockingOperatorToIteratorTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,20 @@
1818
import static org.junit.Assert.assertEquals;
1919
import static rx.internal.operators.BlockingOperatorToIterator.toIterator;
2020

21-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
22-
2321
import java.util.Iterator;
2422

2523
import org.junit.Test;
2624

27-
import rx.Observable;
25+
import rx.*;
2826
import rx.Observable.OnSubscribe;
29-
import rx.Subscriber;
3027
import rx.exceptions.TestException;
3128
import rx.internal.operators.BlockingOperatorToIterator.SubscriberIterator;
3229
import rx.internal.util.RxRingBuffer;
3330

3431
public class BlockingOperatorToIteratorTest {
3532
@Test
3633
public void constructorShouldBePrivate() {
37-
PrivateConstructorChecker.forClass(BlockingOperatorToIterator.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
34+
TestUtil.checkUtilityClass(BlockingOperatorToIterator.class);
3835
}
3936

4037
@Test

src/test/java/rx/internal/operators/OnSubscribeToObservableFutureTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,19 @@
1919
import static org.mockito.Matchers.any;
2020
import static org.mockito.Mockito.*;
2121

22-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
23-
2422
import java.util.concurrent.*;
2523
import java.util.concurrent.atomic.AtomicBoolean;
2624

2725
import org.junit.Test;
2826

2927
import rx.*;
30-
import rx.observers.*;
28+
import rx.observers.TestSubscriber;
3129
import rx.schedulers.Schedulers;
3230

3331
public class OnSubscribeToObservableFutureTest {
3432
@Test
3533
public void constructorShouldBePrivate() {
36-
PrivateConstructorChecker.forClass(OnSubscribeToObservableFuture.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
34+
TestUtil.checkUtilityClass(OnSubscribeToObservableFuture.class);
3735
}
3836

3937
@Test

src/test/java/rx/internal/operators/OperatorSequenceEqualTest.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,19 @@
1616
package rx.internal.operators;
1717

1818
import static org.mockito.Matchers.isA;
19-
import static org.mockito.Mockito.inOrder;
20-
import static org.mockito.Mockito.mock;
21-
import static org.mockito.Mockito.times;
22-
23-
import com.pushtorefresh.private_constructor_checker.PrivateConstructorChecker;
19+
import static org.mockito.Mockito.*;
2420

2521
import org.junit.Test;
2622
import org.mockito.InOrder;
2723

28-
import rx.Observable;
29-
import rx.Observer;
24+
import rx.*;
3025
import rx.exceptions.TestException;
3126
import rx.functions.Func2;
3227

3328
public class OperatorSequenceEqualTest {
3429
@Test
3530
public void constructorShouldBePrivate() {
36-
PrivateConstructorChecker.forClass(OperatorSequenceEqual.class).expectedTypeOfException(IllegalStateException.class).expectedExceptionMessage("No instances!").check();
31+
TestUtil.checkUtilityClass(OperatorSequenceEqual.class);
3732
}
3833

3934
@Test

0 commit comments

Comments
 (0)