Skip to content

Commit 66b7143

Browse files
committed
Expose TestObservationRegistry as an AssertJ AssertProvider
1 parent 80dfc76 commit 66b7143

File tree

15 files changed

+127
-173
lines changed

15 files changed

+127
-173
lines changed

docs/src/test/java/io/micrometer/docs/observation/ObservationHandlerTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@
2727
import io.micrometer.observation.aop.ObservedAspect;
2828
import io.micrometer.observation.docs.ObservationDocumentation;
2929
import io.micrometer.observation.tck.TestObservationRegistry;
30-
import io.micrometer.observation.tck.TestObservationRegistryAssert;
3130
import org.junit.jupiter.api.Test;
3231
import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;
3332
import org.springframework.lang.Nullable;
3433

3534
import static io.micrometer.docs.observation.ObservationHandlerTests.TaxObservationDocumentation.TaxHighCardinalityKeyNames.USER_ID;
3635
import static io.micrometer.docs.observation.ObservationHandlerTests.TaxObservationDocumentation.TaxLowCardinalityKeyNames.TAX_TYPE;
36+
import static org.assertj.core.api.Assertions.assertThat;
3737

3838
/**
3939
* Sources for observation-components.adoc
@@ -158,7 +158,7 @@ void annotatedCallShouldBeObserved() {
158158
service.call();
159159

160160
// assert that observation has been properly created
161-
TestObservationRegistryAssert.assertThat(registry)
161+
assertThat(registry)
162162
.hasSingleObservationThat()
163163
.hasBeenStopped()
164164
.hasNameEqualTo("test.call")

docs/src/test/java/io/micrometer/docs/observation/ObservationTestingTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@
1818
import io.micrometer.observation.Observation;
1919
import io.micrometer.observation.ObservationRegistry;
2020
import io.micrometer.observation.tck.TestObservationRegistry;
21-
import io.micrometer.observation.tck.TestObservationRegistryAssert;
2221
import org.junit.jupiter.api.Test;
2322

23+
import static org.assertj.core.api.Assertions.assertThat;
24+
2425
/**
2526
* Sources for observation-testing.adoc
2627
*/
@@ -37,7 +38,7 @@ void should_assert_your_observation() {
3738
new Example(registry).run();
3839

3940
// check your observation
40-
TestObservationRegistryAssert.assertThat(registry)
41+
assertThat(registry)
4142
.doesNotHaveAnyRemainingCurrentObservation()
4243
.hasObservationWithNameEqualTo("foo")
4344
.that()

docs/src/test/java/io/micrometer/docs/observation/messaging/ObservationMessagingIntegrationTest.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.micrometer.observation.ObservationHandler;
2121
import io.micrometer.observation.ObservationRegistry;
2222
import io.micrometer.observation.tck.TestObservationRegistry;
23-
import io.micrometer.observation.tck.TestObservationRegistryAssert;
2423
import io.micrometer.observation.transport.ReceiverContext;
2524
import io.micrometer.observation.transport.SenderContext;
2625
import org.apache.kafka.clients.admin.AdminClient;
@@ -56,6 +55,8 @@
5655
import java.util.concurrent.TimeUnit;
5756
import java.util.concurrent.TimeoutException;
5857

58+
import static org.assertj.core.api.Assertions.assertThat;
59+
5960
@Testcontainers
6061
@Tag("docker")
6162
class ObservationMessagingIntegrationTest {
@@ -134,15 +135,13 @@ void shouldManageProducerAndConsumerMetrics() throws ExecutionException, Interru
134135
// end::consumer_side[]
135136

136137
// tag::test_assertions[]
137-
TestObservationRegistryAssert.assertThat(registry)
138-
.hasObservationWithNameEqualTo("kafka.send")
138+
assertThat(registry).hasObservationWithNameEqualTo("kafka.send")
139139
.that()
140140
.hasBeenStarted()
141141
.hasBeenStopped()
142142
.hasLowCardinalityKeyValue("sent", "true");
143143

144-
TestObservationRegistryAssert.assertThat(registry)
145-
.hasObservationWithNameEqualTo("kafka.receive")
144+
assertThat(registry).hasObservationWithNameEqualTo("kafka.receive")
146145
.that()
147146
.hasBeenStarted()
148147
.hasBeenStopped()

micrometer-core/src/test/java/io/micrometer/core/instrument/binder/grpc/GrpcObservationTest.java

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
import io.micrometer.observation.ObservationRegistry;
6767
import io.micrometer.observation.ObservationTextPublisher;
6868
import io.micrometer.observation.tck.TestObservationRegistry;
69-
import io.micrometer.observation.tck.TestObservationRegistryAssert;
7069
import org.junit.jupiter.api.AfterEach;
7170
import org.junit.jupiter.api.BeforeEach;
7271
import org.junit.jupiter.api.Nested;
@@ -170,7 +169,7 @@ void unaryRpc() {
170169
assertThat(clientHandler.getEvents()).containsExactly(GrpcClientEvents.MESSAGE_SENT,
171170
GrpcClientEvents.MESSAGE_RECEIVED);
172171
// tag::assertion[]
173-
TestObservationRegistryAssert.assertThat(observationRegistry)
172+
assertThat(observationRegistry)
174173
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client"))
175174
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server"));
176175
// end::assertion[]
@@ -205,7 +204,7 @@ public void onFailure(Throwable t) {
205204

206205
await().until(() -> futures.stream().allMatch(Future::isDone));
207206
assertThat(responses).hasSize(count).containsExactlyInAnyOrderElementsOf(messages);
208-
TestObservationRegistryAssert.assertThat(observationRegistry)
207+
assertThat(observationRegistry)
209208
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client"))
210209
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server"));
211210
verifyHeaders();
@@ -248,7 +247,7 @@ void clientStreamingRpc() {
248247
verifyServerContext("grpc.testing.SimpleService", "ClientStreamingRpc",
249248
"grpc.testing.SimpleService/ClientStreamingRpc", MethodType.CLIENT_STREAMING);
250249
assertThat(serverHandler.getContext().getStatusCode()).isEqualTo(Code.OK);
251-
TestObservationRegistryAssert.assertThat(observationRegistry)
250+
assertThat(observationRegistry)
252251
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client"))
253252
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server"));
254253
verifyHeaders();
@@ -283,7 +282,7 @@ void serverStreamingRpc() {
283282
assertThat(clientHandler.getContext().getStatusCode()).isEqualTo(Code.OK);
284283
assertThat(clientHandler.getEvents()).containsExactly(GrpcClientEvents.MESSAGE_SENT,
285284
GrpcClientEvents.MESSAGE_RECEIVED, GrpcClientEvents.MESSAGE_RECEIVED);
286-
TestObservationRegistryAssert.assertThat(observationRegistry)
285+
assertThat(observationRegistry)
287286
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client"))
288287
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server"));
289288
verifyHeaders();
@@ -336,7 +335,7 @@ void bidiStreamingRpc() {
336335

337336
assertThat(serverHandler.getContext().getStatusCode()).isEqualTo(Code.OK);
338337
assertThat(clientHandler.getContext().getStatusCode()).isEqualTo(Code.OK);
339-
TestObservationRegistryAssert.assertThat(observationRegistry)
338+
assertThat(observationRegistry)
340339
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client"))
341340
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server"));
342341
verifyHeaders();
@@ -408,9 +407,8 @@ void unaryRpcFailure() {
408407
assertThat(clientHandler.getContext().getStatusCode()).isEqualTo(Code.UNKNOWN);
409408
assertThat(serverHandler.getEvents()).containsExactly(GrpcServerEvents.MESSAGE_RECEIVED);
410409
assertThat(clientHandler.getEvents()).containsExactly(GrpcClientEvents.MESSAGE_SENT);
411-
TestObservationRegistryAssert.assertThat(observationRegistry)
412-
.hasAnObservation(
413-
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
410+
assertThat(observationRegistry).hasAnObservation(
411+
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
414412
}
415413

416414
@Test
@@ -432,9 +430,8 @@ void clientStreamingRpcFailure() {
432430
assertThat(serverHandler.getContext().getStatusCode()).isNull();
433431
assertThat(clientHandler.getEvents()).isEmpty();
434432
assertThat(serverHandler.getEvents()).isEmpty();
435-
TestObservationRegistryAssert.assertThat(observationRegistry)
436-
.hasAnObservation(
437-
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
433+
assertThat(observationRegistry).hasAnObservation(
434+
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
438435
}
439436

440437
@Test
@@ -458,9 +455,8 @@ void serverStreamingRpcFailure() {
458455
assertThat(serverHandler.getContext().getStatusCode()).isNull();
459456
assertThat(clientHandler.getEvents()).containsExactly(GrpcClientEvents.MESSAGE_SENT);
460457
assertThat(serverHandler.getEvents()).containsExactly(GrpcServerEvents.MESSAGE_RECEIVED);
461-
TestObservationRegistryAssert.assertThat(observationRegistry)
462-
.hasAnObservation(
463-
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
458+
assertThat(observationRegistry).hasAnObservation(
459+
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
464460
}
465461

466462
@Test
@@ -483,9 +479,8 @@ void bidiStreamingRpcFailure() {
483479
assertThat(serverHandler.getContext().getStatusCode()).isNull();
484480
assertThat(clientHandler.getEvents()).isEmpty();
485481
assertThat(serverHandler.getEvents()).isEmpty();
486-
TestObservationRegistryAssert.assertThat(observationRegistry)
487-
.hasAnObservation(
488-
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
482+
assertThat(observationRegistry).hasAnObservation(
483+
observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server").hasError());
489484
}
490485

491486
private StreamObserver<SimpleResponse> createResponseObserver(AtomicBoolean errored) {
@@ -572,7 +567,7 @@ void cancel() {
572567
this.service.requestInterrupted.set(true);
573568
await().until(future::isDone);
574569
assertThat(future.isCancelled()).isTrue();
575-
TestObservationRegistryAssert.assertThat(observationRegistry)
570+
assertThat(observationRegistry)
576571
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client")
577572
.hasLowCardinalityKeyValue("grpc.status_code", "CANCELLED"))
578573
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.server")
@@ -593,7 +588,7 @@ void shutdown() {
593588
this.service.requestInterrupted.set(true);
594589
await().until(channel::isTerminated);
595590
await().until(future::isDone);
596-
TestObservationRegistryAssert.assertThat(observationRegistry)
591+
assertThat(observationRegistry)
597592
.hasAnObservation(observationContextAssert -> observationContextAssert.hasNameEqualTo("grpc.client")
598593
.hasLowCardinalityKeyValue("grpc.status_code", "UNAVAILABLE"));
599594
assertThat(serverHandler.getEvents()).contains(GrpcServerEvents.CANCELLED);

micrometer-core/src/test/java/io/micrometer/core/instrument/binder/httpcomponents/MicrometerHttpRequestExecutorTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.micrometer.observation.ObservationRegistry;
2626
import io.micrometer.observation.GlobalObservationConvention;
2727
import io.micrometer.observation.tck.TestObservationRegistry;
28-
import io.micrometer.observation.tck.TestObservationRegistryAssert;
2928
import org.apache.http.client.ClientProtocolException;
3029
import org.apache.http.client.HttpClient;
3130
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
@@ -305,8 +304,7 @@ void contextualNameContainsRequestMethod(String method, @WiremockResolver.Wiremo
305304
EntityUtils.consume(client.execute(new HttpCustomMethod(method, server.baseUrl())).getEntity());
306305
break;
307306
}
308-
TestObservationRegistryAssert.assertThat(observationRegistry)
309-
.hasSingleObservationThat()
307+
assertThat(observationRegistry).hasSingleObservationThat()
310308
.hasContextualNameEqualToIgnoringCase("http " + method);
311309
}
312310

micrometer-core/src/test/java/io/micrometer/core/instrument/binder/httpcomponents/hc5/MicrometerHttpRequestExecutorTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.micrometer.observation.GlobalObservationConvention;
2626
import io.micrometer.observation.ObservationRegistry;
2727
import io.micrometer.observation.tck.TestObservationRegistry;
28-
import io.micrometer.observation.tck.TestObservationRegistryAssert;
2928
import org.apache.hc.client5.http.ClientProtocolException;
3029
import org.apache.hc.client5.http.classic.methods.HttpGet;
3130
import org.apache.hc.client5.http.classic.methods.HttpPost;
@@ -318,8 +317,7 @@ void contextualNameContainsRequestMethod(String method, @WiremockResolver.Wiremo
318317
execute(client, new HttpUriRequestBase(method, URI.create(server.baseUrl())));
319318
break;
320319
}
321-
TestObservationRegistryAssert.assertThat(observationRegistry)
322-
.hasSingleObservationThat()
320+
assertThat(observationRegistry).hasSingleObservationThat()
323321
.hasContextualNameEqualToIgnoringCase("http " + method);
324322
}
325323

micrometer-core/src/test/java/io/micrometer/core/instrument/binder/httpcomponents/hc5/ObservationExecChainHandlerIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
import static com.github.tomakehurst.wiremock.client.WireMock.*;
5656
import static com.github.tomakehurst.wiremock.stubbing.Scenario.STARTED;
5757
import static io.micrometer.core.instrument.binder.httpcomponents.hc5.ApacheHttpClientObservationDocumentation.ApacheHttpClientKeyNames.*;
58-
import static io.micrometer.observation.tck.TestObservationRegistryAssert.assertThat;
58+
import static org.assertj.core.api.Assertions.assertThat;
5959
import static org.assertj.core.api.Assertions.assertThatThrownBy;
6060

6161
/**

micrometer-core/src/test/java/io/micrometer/core/instrument/binder/httpcomponents/hc5/ObservationExecChainHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import java.util.concurrent.atomic.AtomicInteger;
4040

4141
import static io.micrometer.core.instrument.binder.httpcomponents.hc5.ApacheHttpClientObservationDocumentation.ApacheHttpClientKeyNames.*;
42-
import static io.micrometer.observation.tck.TestObservationRegistryAssert.assertThat;
42+
import static org.assertj.core.api.Assertions.assertThat;
4343
import static org.assertj.core.api.Assertions.assertThatThrownBy;
4444
import static org.mockito.ArgumentMatchers.any;
4545
import static org.mockito.BDDMockito.given;

micrometer-core/src/test/java/io/micrometer/core/instrument/observation/ObservationOrTimerCompatibleInstrumentationTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import io.micrometer.observation.tck.TestObservationRegistry;
2727
import org.junit.jupiter.api.Test;
2828

29-
import static io.micrometer.observation.tck.TestObservationRegistryAssert.assertThat;
3029
import static org.assertj.core.api.Assertions.assertThat;
3130

3231
class ObservationOrTimerCompatibleInstrumentationTest {

micrometer-observation-test/src/main/java/io/micrometer/observation/tck/TestObservationRegistry.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.util.Queue;
2424
import java.util.concurrent.ConcurrentLinkedQueue;
2525

26+
import org.assertj.core.api.AssertProvider;
27+
2628
/**
2729
* Implementation of {@link ObservationRegistry} used for testing.
2830
*
@@ -31,7 +33,8 @@
3133
* @author Marcin Grzejszczak
3234
* @since 1.10.0
3335
*/
34-
public final class TestObservationRegistry implements ObservationRegistry {
36+
public final class TestObservationRegistry
37+
implements ObservationRegistry, AssertProvider<TestObservationRegistryAssert> {
3538

3639
private final ObservationRegistry delegate = ObservationRegistry.create();
3740

@@ -81,6 +84,18 @@ public void clear() {
8184
getContexts().clear();
8285
}
8386

87+
/**
88+
* Return an assert for AspectJ.
89+
* @return an AspectJ assert
90+
* @deprecated to prevent accidental use. Prefer standard AssertJ
91+
* {@code assertThat(observationRegistry)...} calls instead.
92+
*/
93+
@Deprecated
94+
@Override
95+
public TestObservationRegistryAssert assertThat() {
96+
return TestObservationRegistryAssert.assertThat(this);
97+
}
98+
8499
private static class StoringObservationHandler implements ObservationHandler<Observation.Context> {
85100

86101
final Queue<TestObservationContext> contexts = new ConcurrentLinkedQueue<>();

0 commit comments

Comments
 (0)