From 0d6bb65185d8eeeaca535f2337c3a638f3b08214 Mon Sep 17 00:00:00 2001 From: Gary Gregory Date: Thu, 22 Aug 2024 08:41:33 -0400 Subject: [PATCH] ConsumableInputStream extends FilterInputStream - Reduces boilerplace in the test fixture - Use Mockito like the rest of the updated test - Rework test setup to pass on Java 17 and 21 with Mockito --- .../impl/cache/ConsumableInputStream.java | 57 ------------------- .../impl/cache/TestRFC5861Compliance.java | 5 +- 2 files changed, 2 insertions(+), 60 deletions(-) delete mode 100644 httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/ConsumableInputStream.java diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/ConsumableInputStream.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/ConsumableInputStream.java deleted file mode 100644 index e7969f2e5..000000000 --- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/ConsumableInputStream.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * ==================================================================== - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * . - * - */ -package org.apache.hc.client5.http.impl.cache; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; - -import org.apache.hc.core5.io.Closer; - -public class ConsumableInputStream extends InputStream { - - private final ByteArrayInputStream buf; - private boolean closed; - - public ConsumableInputStream(final ByteArrayInputStream buf) { - this.buf = buf; - } - - @Override - public int read() { - return buf.read(); - } - - @Override - public void close() { - closed = true; - Closer.closeQuietly(buf); - } - - public boolean wasClosed() { - return closed; - } -} diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRFC5861Compliance.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRFC5861Compliance.java index cb5c34835..fa77d7487 100644 --- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRFC5861Compliance.java +++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRFC5861Compliance.java @@ -136,8 +136,7 @@ class TestRFC5861Compliance { final ClassicHttpRequest req2 = HttpTestUtils.makeDefaultRequest(); final ClassicHttpResponse resp2 = HttpTestUtils.make500Response(); final byte[] body101 = HttpTestUtils.makeRandomBytes(101); - final ByteArrayInputStream buf = new ByteArrayInputStream(body101); - final ConsumableInputStream cis = new ConsumableInputStream(buf); + final ByteArrayInputStream cis = Mockito.spy(new ByteArrayInputStream(body101)); final HttpEntity entity = new InputStreamEntity(cis, 101, null); resp2.setEntity(entity); @@ -149,7 +148,7 @@ class TestRFC5861Compliance { execute(req2); - assertTrue(cis.wasClosed()); + Mockito.verify(cis).close(); } @Test