diff --git a/base-configuration/pom.xml b/base-configuration/pom.xml
index fe27b47..83481c2 100644
--- a/base-configuration/pom.xml
+++ b/base-configuration/pom.xml
@@ -35,36 +35,6 @@
test
-
- org.mockito
- mockito-core
- test
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- dependency-properties
-
- properties
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
- -XX:+EnableDynamicAgentLoading -javaagent:${org.mockito:mockito-core:jar}
-
-
-
-
diff --git a/base-configuration/src/test/java/build/base/configuration/ConfigurationTests.java b/base-configuration/src/test/java/build/base/configuration/ConfigurationTests.java
index 5c4f3c7..e3b57bf 100644
--- a/base-configuration/src/test/java/build/base/configuration/ConfigurationTests.java
+++ b/base-configuration/src/test/java/build/base/configuration/ConfigurationTests.java
@@ -10,11 +10,9 @@
import java.util.function.Supplier;
import java.util.stream.Stream;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
/**
* Tests for {@link Configuration}s.
@@ -128,22 +126,19 @@ void shouldReturnSpecifiedDefaultEnumOption() {
* Ensure that a provided {@link Supplier} is not invoked when an {@link Option} is present.
*/
@Test
- @SuppressWarnings("unchecked")
void shouldAvoidSupplierWhenNonNull() {
final var configuration = ConfigurationBuilder.create()
.add(Color.GREEN)
.build();
- // establish a mock supplier for the Color.BLUE
- // (so we can track interactions with the supplier)
- final Supplier blueSupplier = mock(Supplier.class);
- when(blueSupplier.get()).thenReturn(Color.BLUE);
+ final var supplierCalled = new AtomicBoolean(false);
- assertThat(configuration.getOrDefault(Color.class, blueSupplier))
- .isEqualTo(Color.GREEN);
+ assertThat(configuration.getOrDefault(Color.class, () -> {
+ supplierCalled.set(true);
+ return Color.BLUE;
+ })).isEqualTo(Color.GREEN);
- // ensure the supplier was never used
- verify(blueSupplier, times(0)).get();
+ assertThat(supplierCalled).isFalse();
}
/**
diff --git a/base-flow/pom.xml b/base-flow/pom.xml
index 98fb334..19e80da 100644
--- a/base-flow/pom.xml
+++ b/base-flow/pom.xml
@@ -35,36 +35,5 @@
test
-
- org.mockito
- mockito-core
- test
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- dependency-properties
-
- properties
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
- -XX:+EnableDynamicAgentLoading -javaagent:${org.mockito:mockito-core:jar}
-
-
-
-
diff --git a/base-flow/src/test/java/build/base/flow/FilteringSubscriberTests.java b/base-flow/src/test/java/build/base/flow/FilteringSubscriberTests.java
index f37aaf8..f691b8f 100644
--- a/base-flow/src/test/java/build/base/flow/FilteringSubscriberTests.java
+++ b/base-flow/src/test/java/build/base/flow/FilteringSubscriberTests.java
@@ -1,7 +1,6 @@
package build.base.flow;
import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
import static org.assertj.core.api.Assertions.assertThat;
@@ -13,6 +12,11 @@
*/
class FilteringSubscriberTests {
+ private static final Subscription NO_OP_SUBSCRIPTION = new Subscription() {
+ @Override public void request(final long number) {}
+ @Override public void cancel() {}
+ };
+
/**
* Ensure a {@link FilteringSubscriber} can be created.
*/
@@ -28,11 +32,10 @@ void shouldCreateAFilteringSubscriber() {
@Test
void shouldObserveFilteredValues() {
- final var subscription = Mockito.mock(Subscription.class);
final var recordingSubscriber = new RecordingSubscriber();
final var filteringObserver = FilteringSubscriber.of(s -> s.startsWith("Hello"), recordingSubscriber);
- filteringObserver.onSubscribe(subscription);
+ filteringObserver.onSubscribe(NO_OP_SUBSCRIPTION);
assertThat(recordingSubscriber.isSubscribed())
.isTrue();
@@ -71,11 +74,10 @@ void shouldObserveFilteredValues() {
@Test
void shouldObserveCompletionWhenFilteringSubscriberObservesCompletion() {
- final var subscription = Mockito.mock(Subscription.class);
final var recordingSubscriber = new RecordingSubscriber();
final var filteringObserver = FilteringSubscriber.of(s -> s.startsWith("Hello"), recordingSubscriber);
- filteringObserver.onSubscribe(subscription);
+ filteringObserver.onSubscribe(NO_OP_SUBSCRIPTION);
filteringObserver.onComplete();
@@ -89,12 +91,10 @@ void shouldObserveCompletionWhenFilteringSubscriberObservesCompletion() {
@Test
void shouldObserveAnErrorWhenFilteringObserverObservesAnError() {
- final var subscription = Mockito.mock(Subscription.class);
-
final var recordingSubscriber = new RecordingSubscriber();
final var filteringObserver = FilteringSubscriber.of(s -> s.startsWith("Hello"), recordingSubscriber);
- filteringObserver.onSubscribe(subscription);
+ filteringObserver.onSubscribe(NO_OP_SUBSCRIPTION);
assertThat(recordingSubscriber.isSubscribed())
.isTrue();
diff --git a/base-flow/src/test/java/build/base/flow/MappingSubscriberTests.java b/base-flow/src/test/java/build/base/flow/MappingSubscriberTests.java
index 194ef60..b791db0 100644
--- a/base-flow/src/test/java/build/base/flow/MappingSubscriberTests.java
+++ b/base-flow/src/test/java/build/base/flow/MappingSubscriberTests.java
@@ -1,7 +1,6 @@
package build.base.flow;
import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
import static org.assertj.core.api.Assertions.assertThat;
@@ -13,6 +12,11 @@
*/
class MappingSubscriberTests {
+ private static final Subscription NO_OP_SUBSCRIPTION = new Subscription() {
+ @Override public void request(final long number) {}
+ @Override public void cancel() {}
+ };
+
/**
* Ensure a {@link MappingSubscriber} can be created.
*/
@@ -27,11 +31,10 @@ void shouldCreateAMappingSubscriber() {
@Test
void shouldObserveMapValues() {
- final var subscription = Mockito.mock(Subscription.class);
final var recordingObserver = new RecordingSubscriber();
final var mappingObserver = MappingSubscriber.of(String::length, recordingObserver);
- mappingObserver.onSubscribe(subscription);
+ mappingObserver.onSubscribe(NO_OP_SUBSCRIPTION);
assertThat(recordingObserver.isSubscribed())
.isTrue();
@@ -59,11 +62,10 @@ void shouldObserveMapValues() {
@Test
void shouldObserveCompletionWhenMappingSubscriberObservesCompletion() {
- final var subscription = Mockito.mock(Subscription.class);
final var recordingObserver = new RecordingSubscriber();
final var mappingObserver = MappingSubscriber.of(String::length, recordingObserver);
- mappingObserver.onSubscribe(subscription);
+ mappingObserver.onSubscribe(NO_OP_SUBSCRIPTION);
mappingObserver.onComplete();
@@ -77,11 +79,10 @@ void shouldObserveCompletionWhenMappingSubscriberObservesCompletion() {
@Test
void shouldObserveAnErrorWhenMappingSubscriberObservesAnError() {
- final var subscription = Mockito.mock(Subscription.class);
final var recordingObserver = new RecordingSubscriber();
final var mappingObserver = MappingSubscriber.of(String::length, recordingObserver);
- mappingObserver.onSubscribe(subscription);
+ mappingObserver.onSubscribe(NO_OP_SUBSCRIPTION);
assertThat(recordingObserver.isSubscribed())
.isTrue();
diff --git a/base-flow/src/test/java/build/base/flow/SubscriberRegistryTests.java b/base-flow/src/test/java/build/base/flow/SubscriberRegistryTests.java
index 0873ff6..7b839cc 100644
--- a/base-flow/src/test/java/build/base/flow/SubscriberRegistryTests.java
+++ b/base-flow/src/test/java/build/base/flow/SubscriberRegistryTests.java
@@ -1,16 +1,13 @@
package build.base.flow;
import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mockito;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doCallRealMethod;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
/**
* Tests for {@link SubscriberRegistry}s.
@@ -28,18 +25,6 @@ void shouldCreate() {
new SubscriberRegistry<>();
}
- /**
- * Creates an unbounded mocked {@link Subscriber}.
- *
- * @return a {@link Subscriber}
- */
- @SuppressWarnings("unchecked")
- private Subscriber createUnboundedMockSubscriber() {
- final Subscriber subscriber = Mockito.mock(Subscriber.class);
- doCallRealMethod().when(subscriber).onSubscribe(any());
- return subscriber;
- }
-
/**
* Ensure a {@link Subscriber} can be subscribed to a {@link SubscriberRegistry}.
*/
@@ -47,13 +32,13 @@ private Subscriber createUnboundedMockSubscriber() {
void shouldSubscribe() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
subscriberRegistry.subscribe(subscriber);
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isFalse();
+ assertThat(subscriber.throwable()).isEmpty();
}
/**
@@ -63,22 +48,20 @@ void shouldSubscribe() {
void shouldCancelSubscription() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
subscriberRegistry.subscribe(subscriber);
- final ArgumentCaptor captor = ArgumentCaptor.forClass(Subscription.class);
-
- verify(subscriber, times(1)).onSubscribe(captor.capture());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isFalse();
+ assertThat(subscriber.throwable()).isEmpty();
- captor.getValue().cancel();
+ subscriber.subscription().cancel();
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(1)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isTrue();
+ assertThat(subscriber.throwable()).isEmpty();
}
/**
@@ -88,21 +71,19 @@ void shouldCancelSubscription() {
void shouldObserveAnItem() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
subscriberRegistry.subscribe(subscriber);
final String message = "G'day Mate";
subscriberRegistry.publish(message);
- final ArgumentCaptor captor = ArgumentCaptor.forClass(String.class);
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).hasSize(1);
+ assertThat(subscriber.isCompleted()).isFalse();
+ assertThat(subscriber.throwable()).isEmpty();
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(1)).onNext(captor.capture());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(0)).onError(any());
-
- assertThat(captor.getValue())
+ assertThat(subscriber.items().getFirst())
.isEqualTo(message);
}
@@ -113,15 +94,15 @@ void shouldObserveAnItem() {
void shouldObserveCompletion() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
subscriberRegistry.subscribe(subscriber);
subscriberRegistry.complete();
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(1)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isTrue();
+ assertThat(subscriber.throwable()).isEmpty();
}
/**
@@ -131,21 +112,16 @@ void shouldObserveCompletion() {
void shouldObserveAnError() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
subscriberRegistry.subscribe(subscriber);
final Throwable throwable = new RuntimeException("Oops!");
subscriberRegistry.error(throwable);
- final ArgumentCaptor captor = ArgumentCaptor.forClass(Throwable.class);
-
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(1)).onError(captor.capture());
-
- assertThat(captor.getValue())
- .isEqualTo(throwable);
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isFalse();
+ assertThat(subscriber.throwable()).contains(throwable);
}
/**
@@ -156,21 +132,17 @@ void shouldObserveAnError() {
void shouldNotObserveItemDuringSubscription() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
-
- doAnswer(invocation -> {
- invocation.getArgument(0, Subscription.class).request(Long.MAX_VALUE);
-
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>(subscription -> {
+ subscription.request(Long.MAX_VALUE);
subscriberRegistry.publish("Should Never See This!");
- return null;
- }).when(subscriber).onSubscribe(any());
+ });
subscriberRegistry.subscribe(subscriber);
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isFalse();
+ assertThat(subscriber.throwable()).isEmpty();
}
/**
@@ -181,20 +153,14 @@ void shouldNotObserveItemDuringSubscription() {
void shouldCancelDuringSubscription() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
-
- doAnswer(invocation -> {
- final Subscription subscription = invocation.getArgument(0);
- subscription.cancel();
- return null;
- }).when(subscriber).onSubscribe(any());
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>(Subscription::cancel);
subscriberRegistry.subscribe(subscriber);
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(0)).onNext(any());
- verify(subscriber, times(1)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).isEmpty();
+ assertThat(subscriber.isCompleted()).isTrue();
+ assertThat(subscriber.throwable()).isEmpty();
}
/**
@@ -204,7 +170,7 @@ void shouldCancelDuringSubscription() {
void shouldObserveItemsInOrder() {
final SubscriberRegistry subscriberRegistry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
subscriberRegistry.subscribe(subscriber);
subscriberRegistry.publish(1);
@@ -212,14 +178,12 @@ void shouldObserveItemsInOrder() {
subscriberRegistry.publish(3);
subscriberRegistry.publish(4);
- final ArgumentCaptor captor = ArgumentCaptor.forClass(Integer.class);
-
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(4)).onNext(captor.capture());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).hasSize(4);
+ assertThat(subscriber.isCompleted()).isFalse();
+ assertThat(subscriber.throwable()).isEmpty();
- assertThat(captor.getAllValues())
+ assertThat(subscriber.items())
.containsExactly(1, 2, 3, 4);
}
@@ -230,7 +194,7 @@ void shouldObserveItemsInOrder() {
void shouldPublishAndComplete() {
final SubscriberRegistry registry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
registry.subscribe(subscriber);
final String message = "G'day Mate";
@@ -242,17 +206,15 @@ void shouldPublishAndComplete() {
registry.complete();
- final ArgumentCaptor captor = ArgumentCaptor.forClass(String.class);
-
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(1)).onNext(captor.capture());
- verify(subscriber, times(1)).onComplete();
- verify(subscriber, times(0)).onError(any());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).hasSize(1);
+ assertThat(subscriber.isCompleted()).isTrue();
+ assertThat(subscriber.throwable()).isEmpty();
assertThat(registry.onComplete())
.isCompleted();
- assertThat(captor.getValue())
+ assertThat(subscriber.items().getFirst())
.isEqualTo(message);
}
@@ -263,7 +225,7 @@ void shouldPublishAndComplete() {
void shouldPublishAndCompleteDueToError() {
final SubscriberRegistry registry = new SubscriberRegistry<>();
- final Subscriber subscriber = createUnboundedMockSubscriber();
+ final TrackingSubscriber subscriber = new TrackingSubscriber<>();
registry.subscribe(subscriber);
final String message = "G'day Mate";
@@ -272,39 +234,33 @@ void shouldPublishAndCompleteDueToError() {
registry.publish(message);
registry.error(throwable);
- final ArgumentCaptor itemCaptor = ArgumentCaptor.forClass(String.class);
- final ArgumentCaptor throwableCaptor = ArgumentCaptor.forClass(Throwable.class);
-
- verify(subscriber, times(1)).onSubscribe(any());
- verify(subscriber, times(1)).onNext(itemCaptor.capture());
- verify(subscriber, times(0)).onComplete();
- verify(subscriber, times(1)).onError(throwableCaptor.capture());
+ assertThat(subscriber.subscription()).isNotNull();
+ assertThat(subscriber.items()).hasSize(1);
+ assertThat(subscriber.isCompleted()).isFalse();
- assertThat(itemCaptor.getValue())
+ assertThat(subscriber.items().getFirst())
.isEqualTo(message);
- assertThat(throwableCaptor.getValue())
- .isEqualTo(throwable);
+ assertThat(subscriber.throwable())
+ .contains(throwable);
}
/**
* Ensure {@link SubscriberRegistry} prevents subscription once publishing has completed.
*/
@Test
- @SuppressWarnings("unchecked")
void shouldPreventSubscriptionWhenCompleted() {
final SubscriberRegistry registry = new SubscriberRegistry<>();
registry.complete();
- assertThrows(IllegalStateException.class, () -> registry.subscribe(Mockito.mock(Subscriber.class)));
+ assertThrows(IllegalStateException.class, () -> registry.subscribe(item -> {}));
}
/**
* Ensure {@link SubscriberRegistry} prevents subscription once publishing has completed due to a error.
*/
@Test
- @SuppressWarnings("unchecked")
void shouldPreventSubscriptionWhenError() {
final SubscriberRegistry registry = new SubscriberRegistry<>();
final Throwable throwable = new RuntimeException("Oops!");
@@ -312,7 +268,7 @@ void shouldPreventSubscriptionWhenError() {
registry.error(throwable);
final Throwable cause = assertThrows(IllegalStateException.class,
- () -> registry.subscribe(Mockito.mock(Subscriber.class)));
+ () -> registry.subscribe(item -> {}));
assertThat(cause.getCause())
.isEqualTo(throwable);
@@ -339,4 +295,66 @@ void shouldCompletedOnlyOnce() {
assertThat(thirdTry)
.isFalse();
}
+
+ /**
+ * A {@link Subscriber} that records all interactions for assertion in tests.
+ */
+ private static class TrackingSubscriber implements Subscriber {
+
+ @FunctionalInterface
+ interface OnSubscribe {
+ void accept(Subscription subscription);
+ }
+
+ private final List items = new ArrayList<>();
+ private final OnSubscribe onSubscribeAction;
+ private Subscription subscription;
+ private Throwable throwable;
+ private boolean completed;
+
+ TrackingSubscriber() {
+ this(s -> s.request(Long.MAX_VALUE));
+ }
+
+ TrackingSubscriber(final OnSubscribe onSubscribeAction) {
+ this.onSubscribeAction = onSubscribeAction;
+ }
+
+ @Override
+ public void onSubscribe(final Subscription subscription) {
+ this.subscription = subscription;
+ this.onSubscribeAction.accept(subscription);
+ }
+
+ @Override
+ public void onNext(final T item) {
+ this.items.add(item);
+ }
+
+ @Override
+ public void onError(final Throwable throwable) {
+ this.throwable = throwable;
+ }
+
+ @Override
+ public void onComplete() {
+ this.completed = true;
+ }
+
+ Subscription subscription() {
+ return this.subscription;
+ }
+
+ List items() {
+ return this.items;
+ }
+
+ Optional throwable() {
+ return Optional.ofNullable(this.throwable);
+ }
+
+ boolean isCompleted() {
+ return this.completed;
+ }
+ }
}
diff --git a/base-mereology/pom.xml b/base-mereology/pom.xml
index 8ae080e..23514b7 100644
--- a/base-mereology/pom.xml
+++ b/base-mereology/pom.xml
@@ -40,48 +40,10 @@
test
-
- org.mockito
- mockito-core
- test
-
-
build.base
base-assertion
test
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- dependency-properties
-
- properties
-
-
-
-
-
-
- org.mockito:mockito-core
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
- -XX:+EnableDynamicAgentLoading -javaagent:${org.mockito:mockito-core:jar}
-
-
-
-
diff --git a/base-query/pom.xml b/base-query/pom.xml
index 285211e..b58a59a 100644
--- a/base-query/pom.xml
+++ b/base-query/pom.xml
@@ -34,43 +34,5 @@
assertj-core
test
-
-
- org.mockito
- mockito-core
- test
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- dependency-properties
-
- properties
-
-
-
-
-
-
- org.mockito:mockito-core
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
- -XX:+EnableDynamicAgentLoading -javaagent:${org.mockito:mockito-core:jar}
-
-
-
-
diff --git a/base-retryable/pom.xml b/base-retryable/pom.xml
index 65d4527..c0cdf6e 100644
--- a/base-retryable/pom.xml
+++ b/base-retryable/pom.xml
@@ -44,37 +44,5 @@
assertj-core
test
-
-
- org.mockito
- mockito-core
- test
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- dependency-properties
-
- properties
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
- -XX:+EnableDynamicAgentLoading -javaagent:${org.mockito:mockito-core:jar}
-
-
-
-
diff --git a/base-retryable/src/test/java/build/base/retryable/BlockingRetryTests.java b/base-retryable/src/test/java/build/base/retryable/BlockingRetryTests.java
index 7cf8121..42b3df6 100644
--- a/base-retryable/src/test/java/build/base/retryable/BlockingRetryTests.java
+++ b/base-retryable/src/test/java/build/base/retryable/BlockingRetryTests.java
@@ -10,6 +10,8 @@
import java.time.Instant;
import java.util.Stack;
+import java.util.concurrent.atomic.AtomicInteger;
+
import static build.base.retryable.ConditionallyRetryable.retrying;
import static java.time.Duration.ofMillis;
import static org.assertj.core.api.Assertions.assertThat;
@@ -17,10 +19,6 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTimeout;
import static org.junit.jupiter.api.Assertions.fail;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
/**
* Tests for {@link BlockingRetry}.
@@ -189,14 +187,14 @@ void shouldDelayRetrying() {
* Ensure a {@link BlockingRetry} retries a final time after timing out
*/
@Test
- @SuppressWarnings("unchecked")
void shouldDelayRetryingFinalTime() {
assertTimeout(TIMEOUT, () -> {
- final Retryable retryable = mock(Retryable.class);
- when(retryable.get())
- .thenThrow(new EphemeralFailureException("First Failure"))
- .thenReturn(123);
+ final AtomicInteger calls = new AtomicInteger();
+ final Retryable retryable = () -> {
+ if (calls.incrementAndGet() == 1) throw new EphemeralFailureException("First Failure");
+ return 123;
+ };
final var value = BlockingRetry.retry(
retryable,
@@ -205,8 +203,7 @@ void shouldDelayRetryingFinalTime() {
RetryFrequency.once(Duration.ofMinutes(1)));
assertEquals(123, value);
-
- verify(retryable, times(2)).get();
+ assertEquals(2, calls.get());
});
}
@@ -214,17 +211,18 @@ void shouldDelayRetryingFinalTime() {
* Ensure a {@link BlockingRetry} with a timeout of 0 only executes the {@link Retryable} once
*/
@Test
- @SuppressWarnings("unchecked")
void shouldRetryOnceWithZeroTimeout() {
assertTimeout(TIMEOUT, () -> {
- final Retryable retryable = mock(Retryable.class);
- when(retryable.get())
- .thenThrow(new EphemeralFailureException("First Failure"));
+ final AtomicInteger calls = new AtomicInteger();
+ final Retryable retryable = () -> {
+ calls.incrementAndGet();
+ throw new EphemeralFailureException("First Failure");
+ };
assertThrows(PermanentFailureException.class, () -> BlockingRetry.retry(retryable, Timeout.ofMillis(0)));
- verify(retryable, times(1)).get();
+ assertEquals(1, calls.get());
});
}
@@ -390,29 +388,28 @@ public boolean isDone() {
* laundered
*/
@Test
- @SuppressWarnings("unchecked")
void shouldRetryWhenErrorAndRuntimeExceptionsAreExperienced() {
- final Retryable retryable = mock(Retryable.class);
- when(retryable.isDone()).thenReturn(false);
- when(retryable.get())
- .thenThrow(AssertionError.class)
- .thenThrow(RuntimeException.class)
- .thenThrow(Error.class);
+ final AtomicInteger calls = new AtomicInteger();
+ final Retryable retryable = () -> {
+ switch (calls.incrementAndGet()) {
+ case 1: throw new AssertionError();
+ case 2: throw new RuntimeException();
+ default: throw new Error();
+ }
+ };
assertThrows(Error.class, () -> BlockingRetry.retry(retryable));
- verify(retryable, times(3)).get();
+ assertEquals(3, calls.get());
}
/**
* Ensure that a {@link Retryable} times out before a {@link MinimumDelay}.
*/
@Test
- @SuppressWarnings("unchecked")
void shouldTimeoutBeforeMinimumDelay() {
assertTimeout(TIMEOUT, () -> {
- final Retryable retryable = mock(Retryable.class);
- when(retryable.get()).thenReturn(123);
+ final Retryable retryable = () -> 123;
final int value = BlockingRetry.retry(retryable,
Timeout.ofMillis(1),
diff --git a/pom.xml b/pom.xml
index 241e014..37c519b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -70,7 +70,6 @@
6.0.3
2.0.1
6.0.1
- 5.23.0
3.15.0
@@ -292,11 +291,6 @@
junit-jupiter-params
${junit.version}
-
- org.mockito
- mockito-core
- ${mockito.version}
-