Skip to content

Commit b8849c6

Browse files
committed
Replace Hamcrest assertions with JUnit assertions
1 parent e20603d commit b8849c6

File tree

49 files changed

+587
-913
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+587
-913
lines changed

httpclient5-cache/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,6 @@
6969
<artifactId>spymemcached</artifactId>
7070
<optional>true</optional>
7171
</dependency>
72-
<dependency>
73-
<groupId>org.hamcrest</groupId>
74-
<artifactId>hamcrest</artifactId>
75-
<scope>test</scope>
76-
</dependency>
7772
<dependency>
7873
<groupId>org.mockito</groupId>
7974
<artifactId>mockito-core</artifactId>

httpclient5-cache/src/test/java/org/apache/hc/client5/http/cache/TestHttpCacheEntryFactory.java

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import org.apache.hc.core5.http.message.BasicHttpRequest;
4848
import org.apache.hc.core5.http.message.BasicHttpResponse;
4949
import org.apache.hc.core5.http.message.HeaderGroup;
50-
import org.hamcrest.MatcherAssert;
5150
import org.junit.jupiter.api.Assertions;
5251
import org.junit.jupiter.api.BeforeEach;
5352
import org.junit.jupiter.api.Test;
@@ -99,10 +98,9 @@ void testFilterHopByHopAndConnectionSpecificHeaders() {
9998
new BasicHeader(HttpHeaders.CONTENT_TYPE, ContentType.TEXT_PLAIN.toString()),
10099
new BasicHeader(HttpHeaders.CONTENT_LENGTH, "111"));
101100
final HeaderGroup filteredHeaders = HttpCacheEntryFactory.filterHopByHopHeaders(response);
102-
MatcherAssert.assertThat(filteredHeaders.getHeaders(), HeadersMatcher.same(
101+
HeadersMatcher.assertSame(filteredHeaders.getHeaders(),
103102
new BasicHeader("X-custom", "my stuff"),
104-
new BasicHeader(HttpHeaders.CONTENT_TYPE, ContentType.TEXT_PLAIN.toString())
105-
));
103+
new BasicHeader(HttpHeaders.CONTENT_TYPE, ContentType.TEXT_PLAIN.toString()));
106104
}
107105

108106
@Test
@@ -113,8 +111,8 @@ void testHeadersAreMergedCorrectly() {
113111

114112
final HeaderGroup mergedHeaders = impl.mergeHeaders(entry, response);
115113

116-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Date", DateUtils.formatStandardDate(responseDate)));
117-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("ETag", "\"etag\""));
114+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Date", DateUtils.formatStandardDate(responseDate));
115+
ContainsHeaderMatcher.assertContains(mergedHeaders, "ETag", "\"etag\"");
118116
}
119117

120118
@Test
@@ -132,10 +130,10 @@ void testNewerHeadersReplaceExistingHeaders() {
132130

133131
final HeaderGroup mergedHeaders = impl.mergeHeaders(entry, response);
134132

135-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Date", DateUtils.formatStandardDate(requestDate)));
136-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("ETag", "\"etag\""));
137-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Last-Modified", DateUtils.formatStandardDate(responseDate)));
138-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Cache-Control", "public"));
133+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Date", DateUtils.formatStandardDate(requestDate));
134+
ContainsHeaderMatcher.assertContains(mergedHeaders, "ETag", "\"etag\"");
135+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Last-Modified", DateUtils.formatStandardDate(responseDate));
136+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Cache-Control", "public");
139137
}
140138

141139
@Test
@@ -149,10 +147,10 @@ void testNewHeadersAreAddedByMerge() {
149147

150148
final HeaderGroup mergedHeaders = impl.mergeHeaders(entry, response);
151149

152-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Date", DateUtils.formatStandardDate(requestDate)));
153-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("ETag", "\"etag\""));
154-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Last-Modified", DateUtils.formatStandardDate(responseDate)));
155-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("Cache-Control", "public"));
150+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Date", DateUtils.formatStandardDate(requestDate));
151+
ContainsHeaderMatcher.assertContains(mergedHeaders, "ETag", "\"etag\"");
152+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Last-Modified", DateUtils.formatStandardDate(responseDate));
153+
ContainsHeaderMatcher.assertContains(mergedHeaders, "Cache-Control", "public");
156154
}
157155

158156
@Test
@@ -165,7 +163,7 @@ void entryWithMalformedDateIsStillUpdated() {
165163

166164
final HeaderGroup mergedHeaders = impl.mergeHeaders(entry, response);
167165

168-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("ETag", "\"new\""));
166+
ContainsHeaderMatcher.assertContains(mergedHeaders, "ETag", "\"new\"");
169167
}
170168

171169
@Test
@@ -178,7 +176,7 @@ void entryIsStillUpdatedByResponseWithMalformedDate() {
178176

179177
final HeaderGroup mergedHeaders = impl.mergeHeaders(entry, response);
180178

181-
MatcherAssert.assertThat(mergedHeaders, ContainsHeaderMatcher.contains("ETag", "\"new\""));
179+
ContainsHeaderMatcher.assertContains(mergedHeaders, "ETag", "\"new\"");
182180
}
183181

184182
@Test
@@ -215,8 +213,7 @@ void testCreateRootVariantEntry() {
215213

216214
final HttpCacheEntry newRoot = impl.createRoot(newEntry, variants);
217215

218-
MatcherAssert.assertThat(newRoot, HttpCacheEntryMatcher.equivalent(
219-
HttpTestUtils.makeCacheEntry(
216+
HttpCacheEntryMatcher.assertEquivalent(newRoot, HttpTestUtils.makeCacheEntry(
220217
tenSecondsAgo,
221218
oneSecondAgo,
222219
Method.GET,
@@ -234,7 +231,7 @@ void testCreateRootVariantEntry() {
234231
new BasicHeader("X-custom", "my stuff")
235232
},
236233
variants
237-
)));
234+
));
238235

239236
Assertions.assertTrue(newRoot.hasVariants());
240237
Assertions.assertNull(newRoot.getResource());
@@ -261,8 +258,7 @@ void testCreateResourceEntry() {
261258
final Resource resource = HttpTestUtils.makeRandomResource(128);
262259
final HttpCacheEntry newEntry = impl.create(tenSecondsAgo, oneSecondAgo, host, request, response, resource);
263260

264-
MatcherAssert.assertThat(newEntry, HttpCacheEntryMatcher.equivalent(
265-
HttpTestUtils.makeCacheEntry(
261+
HttpCacheEntryMatcher.assertEquivalent(newEntry, HttpTestUtils.makeCacheEntry(
266262
tenSecondsAgo,
267263
oneSecondAgo,
268264
Method.GET,
@@ -279,7 +275,7 @@ void testCreateResourceEntry() {
279275
new BasicHeader("X-custom", "my stuff")
280276
},
281277
resource
282-
)));
278+
));
283279

284280
Assertions.assertFalse(newEntry.hasVariants());
285281
}
@@ -321,8 +317,7 @@ void testCreateUpdatedResourceEntry() {
321317

322318
final HttpCacheEntry updatedEntry = impl.createUpdated(tenSecondsAgo, oneSecondAgo, host, request, response, entry);
323319

324-
MatcherAssert.assertThat(updatedEntry, HttpCacheEntryMatcher.equivalent(
325-
HttpTestUtils.makeCacheEntry(
320+
HttpCacheEntryMatcher.assertEquivalent(updatedEntry, HttpTestUtils.makeCacheEntry(
326321
tenSecondsAgo,
327322
oneSecondAgo,
328323
Method.GET,
@@ -341,7 +336,7 @@ void testCreateUpdatedResourceEntry() {
341336
new BasicHeader("Cache-Control", "public")
342337
},
343338
resource
344-
)));
339+
));
345340

346341
Assertions.assertFalse(updatedEntry.hasVariants());
347342
}

httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/CacheControlGeneratorTest.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
*/
2727
package org.apache.hc.client5.http.impl.cache;
2828

29-
import static org.hamcrest.MatcherAssert.assertThat;
30-
3129
import org.apache.hc.client5.http.HeaderMatcher;
3230
import org.apache.hc.client5.http.cache.RequestCacheControl;
3331
import org.junit.jupiter.api.Assertions;
@@ -39,7 +37,7 @@ class CacheControlGeneratorTest {
3937

4038
@Test
4139
void testGenerateRequestCacheControlHeader() {
42-
assertThat(generator.generate(
40+
HeaderMatcher.assertSame(generator.generate(
4341
RequestCacheControl.builder()
4442
.setMaxAge(12)
4543
.setMaxStale(23)
@@ -48,10 +46,9 @@ void testGenerateRequestCacheControlHeader() {
4846
.setNoStore(true)
4947
.setOnlyIfCached(true)
5048
.setStaleIfError(56)
51-
.build()),
52-
HeaderMatcher.same("Cache-Control", "max-age=12, max-stale=23, " +
53-
"min-fresh=34, no-cache, no-store, only-if-cached, stale-if-error=56"));
54-
assertThat(generator.generate(
49+
.build()), "Cache-Control", "max-age=12, max-stale=23, " +
50+
"min-fresh=34, no-cache, no-store, only-if-cached, stale-if-error=56");
51+
HeaderMatcher.assertSame(generator.generate(
5552
RequestCacheControl.builder()
5653
.setMaxAge(12)
5754
.setNoCache(true)
@@ -60,20 +57,17 @@ void testGenerateRequestCacheControlHeader() {
6057
.setNoStore(true)
6158
.setStaleIfError(56)
6259
.setOnlyIfCached(true)
63-
.build()),
64-
HeaderMatcher.same("Cache-Control", "max-age=12, max-stale=23, " +
65-
"min-fresh=34, no-cache, no-store, only-if-cached, stale-if-error=56"));
66-
assertThat(generator.generate(
60+
.build()), "Cache-Control", "max-age=12, max-stale=23, " +
61+
"min-fresh=34, no-cache, no-store, only-if-cached, stale-if-error=56");
62+
HeaderMatcher.assertSame(generator.generate(
6763
RequestCacheControl.builder()
6864
.setMaxAge(0)
69-
.build()),
70-
HeaderMatcher.same("Cache-Control", "max-age=0"));
71-
assertThat(generator.generate(
65+
.build()), "Cache-Control", "max-age=0");
66+
HeaderMatcher.assertSame(generator.generate(
7267
RequestCacheControl.builder()
7368
.setMaxAge(-1)
7469
.setMinFresh(10)
75-
.build()),
76-
HeaderMatcher.same("Cache-Control", "min-fresh=10"));
70+
.build()), "Cache-Control", "min-fresh=10");
7771
}
7872

7973
@Test

httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/ContainsHeaderMatcher.java

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,41 +31,20 @@
3131

3232
import org.apache.hc.core5.http.Header;
3333
import org.apache.hc.core5.http.MessageHeaders;
34-
import org.hamcrest.BaseMatcher;
35-
import org.hamcrest.Description;
36-
import org.hamcrest.Matcher;
34+
import org.junit.jupiter.api.Assertions;
3735

38-
public class ContainsHeaderMatcher extends BaseMatcher<MessageHeaders> {
36+
public class ContainsHeaderMatcher {
3937

40-
private final String headerName;
41-
private final Object headerValue;
42-
43-
public ContainsHeaderMatcher(final String headerName, final Object headerValue) {
44-
this.headerName = headerName;
45-
this.headerValue = headerValue;
46-
}
47-
48-
@Override
49-
public boolean matches(final Object item) {
50-
if (item instanceof MessageHeaders) {
51-
final MessageHeaders messageHeaders = (MessageHeaders) item;
52-
for (final Iterator<Header> it = messageHeaders.headerIterator(); it.hasNext(); ) {
53-
final Header header = it.next();
54-
if (headerName.equalsIgnoreCase(header.getName()) && Objects.equals(headerValue, header.getValue())) {
55-
return true;
56-
}
38+
public static void assertContains(final MessageHeaders messageHeaders,
39+
final String headerName, final Object headerValue) {
40+
Assertions.assertNotNull(messageHeaders, "Expected headers");
41+
for (final Iterator<Header> it = messageHeaders.headerIterator(); it.hasNext(); ) {
42+
final Header header = it.next();
43+
if (headerName.equalsIgnoreCase(header.getName()) && Objects.equals(headerValue, header.getValue())) {
44+
return;
5745
}
5846
}
59-
return false;
60-
}
61-
62-
@Override
63-
public void describeTo(final Description description) {
64-
description.appendText("contains header ").appendValue(headerName).appendText(": ").appendValue(headerValue);
65-
}
66-
67-
public static Matcher<MessageHeaders> contains(final String headerName, final Object headerValue) {
68-
return new ContainsHeaderMatcher(headerName, headerValue);
47+
Assertions.fail("Expected header '" + headerName + "' with value '" + headerValue + "'");
6948
}
7049

7150
}

httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/HttpCacheEntryMatcher.java

Lines changed: 44 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -37,58 +37,55 @@
3737
import org.apache.hc.client5.http.cache.Resource;
3838
import org.apache.hc.client5.http.cache.ResourceIOException;
3939
import org.apache.hc.core5.http.Header;
40-
import org.hamcrest.BaseMatcher;
41-
import org.hamcrest.Description;
42-
import org.hamcrest.Matcher;
40+
import org.junit.jupiter.api.Assertions;
4341

44-
public class HttpCacheEntryMatcher extends BaseMatcher<HttpCacheEntry> {
42+
public class HttpCacheEntryMatcher {
4543

46-
private final HttpCacheEntry expectedValue;
47-
48-
public HttpCacheEntryMatcher(final HttpCacheEntry expectedValue) {
49-
this.expectedValue = expectedValue;
44+
public static void assertEquivalent(final HttpCacheEntry actual, final HttpCacheEntry expected) {
45+
try {
46+
Assertions.assertTrue(equivalent(expected, actual), "Expected equivalent cache entry");
47+
} catch (final ResourceIOException ex) {
48+
Assertions.fail("Failed to read cached resource", ex);
49+
}
5050
}
5151

52-
@Override
53-
public boolean matches(final Object item) {
54-
if (item instanceof HttpCacheEntry) {
55-
try {
56-
final HttpCacheEntry otherValue = (HttpCacheEntry) item;
57-
58-
if (!setEqual(expectedValue.getVariants(), otherValue.getVariants())) {
59-
return false;
60-
}
61-
if (!Objects.equals(expectedValue.getRequestMethod(), otherValue.getRequestMethod())) {
62-
return false;
63-
}
64-
if (!Objects.equals(expectedValue.getRequestURI(), otherValue.getRequestURI())) {
65-
return false;
66-
}
67-
if (!headersEqual(expectedValue.requestHeaderIterator(), otherValue.requestHeaderIterator())) {
68-
return false;
69-
}
70-
if (!instantEqual(expectedValue.getRequestInstant(), otherValue.getRequestInstant())) {
71-
return false;
72-
}
73-
if (expectedValue.getStatus() != otherValue.getStatus()) {
74-
return false;
75-
}
76-
if (!headersEqual(expectedValue.headerIterator(), otherValue.headerIterator())) {
77-
return false;
78-
}
79-
if (!instantEqual(expectedValue.getResponseInstant(), otherValue.getResponseInstant())) {
80-
return false;
81-
}
82-
final Resource expectedResource = expectedValue.getResource();
83-
final byte[] expectedContent = expectedResource != null ? expectedResource.get() : null;
84-
final Resource otherResource = otherValue.getResource();
85-
final byte[] otherContent = otherResource != null ? otherResource.get() : null;
86-
return Arrays.equals(expectedContent, otherContent);
87-
} catch (final ResourceIOException ex) {
88-
throw new RuntimeException(ex);
89-
}
52+
private static boolean equivalent(final HttpCacheEntry expectedValue, final HttpCacheEntry otherValue)
53+
throws ResourceIOException {
54+
if (expectedValue == null && otherValue == null) {
55+
return true;
56+
}
57+
if (expectedValue == null || otherValue == null) {
58+
return false;
59+
}
60+
if (!setEqual(expectedValue.getVariants(), otherValue.getVariants())) {
61+
return false;
62+
}
63+
if (!Objects.equals(expectedValue.getRequestMethod(), otherValue.getRequestMethod())) {
64+
return false;
65+
}
66+
if (!Objects.equals(expectedValue.getRequestURI(), otherValue.getRequestURI())) {
67+
return false;
68+
}
69+
if (!headersEqual(expectedValue.requestHeaderIterator(), otherValue.requestHeaderIterator())) {
70+
return false;
71+
}
72+
if (!instantEqual(expectedValue.getRequestInstant(), otherValue.getRequestInstant())) {
73+
return false;
74+
}
75+
if (expectedValue.getStatus() != otherValue.getStatus()) {
76+
return false;
77+
}
78+
if (!headersEqual(expectedValue.headerIterator(), otherValue.headerIterator())) {
79+
return false;
9080
}
91-
return false;
81+
if (!instantEqual(expectedValue.getResponseInstant(), otherValue.getResponseInstant())) {
82+
return false;
83+
}
84+
final Resource expectedResource = expectedValue.getResource();
85+
final byte[] expectedContent = expectedResource != null ? expectedResource.get() : null;
86+
final Resource otherResource = otherValue.getResource();
87+
final byte[] otherContent = otherResource != null ? otherResource.get() : null;
88+
return Arrays.equals(expectedContent, otherContent);
9289
}
9390

9491
private static boolean instantEqual(final Instant expected, final Instant other) {
@@ -121,13 +118,4 @@ private static boolean setEqual(final Set<?> expected, final Set<?> actual) {
121118
return actual.containsAll(expected);
122119
}
123120

124-
@Override
125-
public void describeTo(final Description description) {
126-
description.appendValue(expectedValue);
127-
}
128-
129-
public static Matcher<HttpCacheEntry> equivalent(final HttpCacheEntry target) {
130-
return new HttpCacheEntryMatcher(target);
131-
}
132-
133121
}

0 commit comments

Comments
 (0)