Skip to content

Commit

Permalink
Remove dependency on Hamcrest (#3851)
Browse files Browse the repository at this point in the history
  • Loading branch information
joschi committed Dec 14, 2023
1 parent b953670 commit 0fb7991
Show file tree
Hide file tree
Showing 9 changed files with 86 additions and 124 deletions.
6 changes: 0 additions & 6 deletions metrics-core/pom.xml
Expand Up @@ -42,12 +42,6 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
@@ -1,14 +1,12 @@
package com.codahale.metrics;

import static com.codahale.metrics.SlidingTimeWindowMovingAverages.NUMBER_OF_BUCKETS;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
import org.junit.Before;
import org.junit.Test;

import java.time.Instant;

import org.junit.Before;
import org.junit.Test;
import static com.codahale.metrics.SlidingTimeWindowMovingAverages.NUMBER_OF_BUCKETS;
import static org.assertj.core.api.Assertions.assertThat;

public class SlidingTimeWindowMovingAveragesTest {

Expand All @@ -28,25 +26,25 @@ public void normalizeIndex() {

SlidingTimeWindowMovingAverages stwm = new SlidingTimeWindowMovingAverages();

assertThat(stwm.normalizeIndex(0), is(0));
assertThat(stwm.normalizeIndex(900), is(0));
assertThat(stwm.normalizeIndex(9000), is(0));
assertThat(stwm.normalizeIndex(-900), is(0));
assertThat(stwm.normalizeIndex(0)).isEqualTo(0);
assertThat(stwm.normalizeIndex(900)).isEqualTo(0);
assertThat(stwm.normalizeIndex(9000)).isEqualTo(0);
assertThat(stwm.normalizeIndex(-900)).isEqualTo(0);

assertThat(stwm.normalizeIndex(1), is(1));
assertThat(stwm.normalizeIndex(1)).isEqualTo(1);

assertThat(stwm.normalizeIndex(899), is(899));
assertThat(stwm.normalizeIndex(-1), is(899));
assertThat(stwm.normalizeIndex(-901), is(899));
assertThat(stwm.normalizeIndex(899)).isEqualTo(899);
assertThat(stwm.normalizeIndex(-1)).isEqualTo(899);
assertThat(stwm.normalizeIndex(-901)).isEqualTo(899);
}

@Test
public void calculateIndexOfTick() {

SlidingTimeWindowMovingAverages stwm = new SlidingTimeWindowMovingAverages(clock);

assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(0L)), is(0));
assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(1L)), is(1));
assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(0L))).isEqualTo(0);
assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(1L))).isEqualTo(1);
}

@Test
Expand All @@ -63,11 +61,11 @@ public void mark_max_without_cleanup() {
}

// verify that no cleanup happened yet
assertThat(movingAverages.oldestBucketTime, is(Instant.ofEpochSecond(0L)));
assertThat(movingAverages.oldestBucketTime).isEqualTo(Instant.ofEpochSecond(0L));

assertThat(meter.getOneMinuteRate(), is(60.0));
assertThat(meter.getFiveMinuteRate(), is(300.0));
assertThat(meter.getFifteenMinuteRate(), is(900.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);
}

@Test
Expand All @@ -84,11 +82,11 @@ public void mark_first_cleanup() {
}

// verify that at least one cleanup happened
assertThat(movingAverages.oldestBucketTime, not(is(Instant.ofEpochSecond(0L))));
assertThat(movingAverages.oldestBucketTime).isNotEqualTo(Instant.EPOCH);

assertThat(meter.getOneMinuteRate(), is(60.0));
assertThat(meter.getFiveMinuteRate(), is(300.0));
assertThat(meter.getFifteenMinuteRate(), is(900.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);
}

@Test
Expand All @@ -102,10 +100,10 @@ public void mark_10_values() {
meter.mark();
}

assertThat(meter.getCount(), is(10L));
assertThat(meter.getOneMinuteRate(), is(10.0));
assertThat(meter.getFiveMinuteRate(), is(10.0));
assertThat(meter.getFifteenMinuteRate(), is(10.0));
assertThat(meter.getCount()).isEqualTo(10L);
assertThat(meter.getOneMinuteRate()).isEqualTo(10.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);
}

@Test
Expand All @@ -117,9 +115,9 @@ public void mark_1000_values() {
}

// only 60/300/900 of the 1000 events took place in the last 1/5/15 minute(s)
assertThat(meter.getOneMinuteRate(), is(60.0));
assertThat(meter.getFiveMinuteRate(), is(300.0));
assertThat(meter.getFifteenMinuteRate(), is(900.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);
}

@Test
Expand All @@ -129,9 +127,9 @@ public void cleanup_pause_shorter_than_window() {

// no mark for three minutes
clock.addSeconds(180);
assertThat(meter.getOneMinuteRate(), is(0.0));
assertThat(meter.getFiveMinuteRate(), is(10.0));
assertThat(meter.getFifteenMinuteRate(), is(10.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);
}

@Test
Expand All @@ -143,15 +141,15 @@ public void cleanup_window_wrap_around() {

// and query at 15:30 minutes (the bucket index must have wrapped around)
clock.addSeconds(50);
assertThat(meter.getOneMinuteRate(), is(10.0));
assertThat(meter.getFiveMinuteRate(), is(10.0));
assertThat(meter.getFifteenMinuteRate(), is(10.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(10.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);

// and query at 30:10 minutes (the bucket index must have wrapped around for the second time)
clock.addSeconds(880);
assertThat(meter.getOneMinuteRate(), is(0.0));
assertThat(meter.getFiveMinuteRate(), is(0.0));
assertThat(meter.getFifteenMinuteRate(), is(0.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(0.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(0.0);
}

@Test
Expand All @@ -161,8 +159,8 @@ public void cleanup_pause_longer_than_two_windows() {

// after forty minutes all rates should be zero
clock.addSeconds(2400);
assertThat(meter.getOneMinuteRate(), is(0.0));
assertThat(meter.getFiveMinuteRate(), is(0.0));
assertThat(meter.getFifteenMinuteRate(), is(0.0));
assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);
assertThat(meter.getFiveMinuteRate()).isEqualTo(0.0);
assertThat(meter.getFifteenMinuteRate()).isEqualTo(0.0);
}
}
6 changes: 0 additions & 6 deletions metrics-ehcache/pom.xml
Expand Up @@ -54,12 +54,6 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Expand Up @@ -6,14 +6,12 @@
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
import org.hamcrest.CoreMatchers;
import org.junit.Before;
import org.junit.Test;

import static com.codahale.metrics.MetricRegistry.name;
import static java.util.Objects.requireNonNull;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assume.assumeThat;

public class InstrumentedCacheDecoratorFactoryTest {
private static final CacheManager MANAGER = CacheManager.create();
Expand All @@ -23,9 +21,7 @@ public class InstrumentedCacheDecoratorFactoryTest {

@Before
public void setUp() {
this.cache = MANAGER.getEhcache("test-config");
assumeThat(cache, is(CoreMatchers.notNullValue()));

this.cache = requireNonNull(MANAGER.getEhcache("test-config"));
this.registry = SharedMetricRegistries.getOrCreate("cache-metrics");
}

Expand Down
6 changes: 0 additions & 6 deletions metrics-httpclient/pom.xml
Expand Up @@ -63,12 +63,6 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Expand Up @@ -15,97 +15,94 @@
import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.PATH_AND_METHOD;
import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.QUERYLESS_URL_AND_METHOD;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

public class HttpClientMetricNameStrategiesTest {

@Test
public void methodOnlyWithName() {
assertThat(METHOD_ONLY.getNameFor("some-service", new HttpGet("/whatever")),
is("org.apache.http.client.HttpClient.some-service.get-requests"));
assertThat(METHOD_ONLY.getNameFor("some-service", new HttpGet("/whatever")))
.isEqualTo("org.apache.http.client.HttpClient.some-service.get-requests");
}

@Test
public void methodOnlyWithoutName() {
assertThat(METHOD_ONLY.getNameFor(null, new HttpGet("/whatever")),
is("org.apache.http.client.HttpClient.get-requests"));
assertThat(METHOD_ONLY.getNameFor(null, new HttpGet("/whatever")))
.isEqualTo("org.apache.http.client.HttpClient.get-requests");
}

@Test
public void hostAndMethodWithName() {
assertThat(HOST_AND_METHOD.getNameFor("some-service", new HttpPost("http://my.host.com/whatever")),
is("org.apache.http.client.HttpClient.some-service.my.host.com.post-requests"));
assertThat(HOST_AND_METHOD.getNameFor("some-service", new HttpPost("http://my.host.com/whatever")))
.isEqualTo("org.apache.http.client.HttpClient.some-service.my.host.com.post-requests");
}

@Test
public void hostAndMethodWithoutName() {
assertThat(HOST_AND_METHOD.getNameFor(null, new HttpPost("http://my.host.com/whatever")),
is("org.apache.http.client.HttpClient.my.host.com.post-requests"));
assertThat(HOST_AND_METHOD.getNameFor(null, new HttpPost("http://my.host.com/whatever")))
.isEqualTo("org.apache.http.client.HttpClient.my.host.com.post-requests");
}

@Test
public void hostAndMethodWithNameInWrappedRequest() throws URISyntaxException {
HttpRequest request = rewriteRequestURI(new HttpPost("http://my.host.com/whatever"));

assertThat(HOST_AND_METHOD.getNameFor("some-service", request),
is("org.apache.http.client.HttpClient.some-service.my.host.com.post-requests"));
assertThat(HOST_AND_METHOD.getNameFor("some-service", request))
.isEqualTo("org.apache.http.client.HttpClient.some-service.my.host.com.post-requests");
}

@Test
public void hostAndMethodWithoutNameInWrappedRequest() throws URISyntaxException {
HttpRequest request = rewriteRequestURI(new HttpPost("http://my.host.com/whatever"));

assertThat(HOST_AND_METHOD.getNameFor(null, request),
is("org.apache.http.client.HttpClient.my.host.com.post-requests"));
assertThat(HOST_AND_METHOD.getNameFor(null, request))
.isEqualTo("org.apache.http.client.HttpClient.my.host.com.post-requests");
}

@Test
public void pathAndMethodWithName() {
assertThat(PATH_AND_METHOD.getNameFor("some-service", new HttpPost("http://my.host.com/whatever/happens")),
is("org.apache.http.client.HttpClient.some-service./whatever/happens.post-requests"));
assertThat(PATH_AND_METHOD.getNameFor("some-service", new HttpPost("http://my.host.com/whatever/happens")))
.isEqualTo("org.apache.http.client.HttpClient.some-service./whatever/happens.post-requests");
}

@Test
public void pathAndMethodWithoutName() {
assertThat(PATH_AND_METHOD.getNameFor(null, new HttpPost("http://my.host.com/whatever/happens")),
is("org.apache.http.client.HttpClient./whatever/happens.post-requests"));
assertThat(PATH_AND_METHOD.getNameFor(null, new HttpPost("http://my.host.com/whatever/happens")))
.isEqualTo("org.apache.http.client.HttpClient./whatever/happens.post-requests");
}

@Test
public void pathAndMethodWithNameInWrappedRequest() throws URISyntaxException {
HttpRequest request = rewriteRequestURI(new HttpPost("http://my.host.com/whatever/happens"));
assertThat(PATH_AND_METHOD.getNameFor("some-service", request),
is("org.apache.http.client.HttpClient.some-service./whatever/happens.post-requests"));
assertThat(PATH_AND_METHOD.getNameFor("some-service", request))
.isEqualTo("org.apache.http.client.HttpClient.some-service./whatever/happens.post-requests");
}

@Test
public void pathAndMethodWithoutNameInWrappedRequest() throws URISyntaxException {
HttpRequest request = rewriteRequestURI(new HttpPost("http://my.host.com/whatever/happens"));
assertThat(PATH_AND_METHOD.getNameFor(null, request),
is("org.apache.http.client.HttpClient./whatever/happens.post-requests"));
assertThat(PATH_AND_METHOD.getNameFor(null, request))
.isEqualTo("org.apache.http.client.HttpClient./whatever/happens.post-requests");
}

@Test
public void querylessUrlAndMethodWithName() {
assertThat(QUERYLESS_URL_AND_METHOD.getNameFor(
"some-service",
new HttpPut("https://thing.com:8090/my/path?ignore=this&and=this")),
is("org.apache.http.client.HttpClient.some-service.https://thing.com:8090/my/path.put-requests"));
new HttpPut("https://thing.com:8090/my/path?ignore=this&and=this")))
.isEqualTo("org.apache.http.client.HttpClient.some-service.https://thing.com:8090/my/path.put-requests");
}

@Test
public void querylessUrlAndMethodWithNameInWrappedRequest() throws URISyntaxException {
HttpRequest request = rewriteRequestURI(new HttpPut("https://thing.com:8090/my/path?ignore=this&and=this"));
assertThat(QUERYLESS_URL_AND_METHOD.getNameFor(
"some-service",
request),
is("org.apache.http.client.HttpClient.some-service.https://thing.com:8090/my/path.put-requests"));
assertThat(QUERYLESS_URL_AND_METHOD.getNameFor("some-service", request))
.isEqualTo("org.apache.http.client.HttpClient.some-service.https://thing.com:8090/my/path.put-requests");
}

private static HttpRequest rewriteRequestURI(HttpRequest request) throws URISyntaxException {
HttpRequestWrapper wrapper = HttpRequestWrapper.wrap(request);
URI uri = URIUtils.rewriteURI(wrapper.getURI(), null, true);
URI uri = URIUtils.rewriteURI(wrapper.getURI(), null, URIUtils.DROP_FRAGMENT);
wrapper.setURI(uri);

return wrapper;
Expand Down
6 changes: 0 additions & 6 deletions metrics-httpclient5/pom.xml
Expand Up @@ -73,12 +73,6 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down

0 comments on commit 0fb7991

Please sign in to comment.