77import java .io .ByteArrayInputStream ;
88import java .io .IOException ;
99import java .io .InputStream ;
10+ import java .io .InputStreamReader ;
1011import java .io .Reader ;
11- import java .io .StringReader ;
1212import java .io .StringWriter ;
1313import java .nio .charset .StandardCharsets ;
1414import java .util .Scanner ;
1919import org .slf4j .LoggerFactory ;
2020
2121import com .google .common .base .Charsets ;
22- import com .google .common .io .ByteSource ;
2322import com .google .common .io .CharStreams ;
2423import com .google .common .io .InputSupplier ;
2524
@@ -43,9 +42,17 @@ public final void givenUsingJava7_whenConvertingAnInputStreamToAString_thenCorre
4342 }
4443
4544 @ Test
46- public final void givenUsingGuavaNoEncoding_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
45+ public final void givenUsingGuava_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
4746 final String originalString = randomAlphabetic (8 );
48- final InputSupplier <StringReader > readerSupplier = CharStreams .newReaderSupplier (originalString );
47+ final InputStream inputStream = new ByteArrayInputStream (originalString .getBytes ());
48+
49+ final InputSupplier <InputStream > inputSupplier = new InputSupplier <InputStream >() {
50+ @ Override
51+ public final InputStream getInput () throws IOException {
52+ return inputStream ;
53+ }
54+ };
55+ final InputSupplier <InputStreamReader > readerSupplier = CharStreams .newReaderSupplier (inputSupplier , Charsets .UTF_8 );
4956
5057 // When
5158 final String text = CharStreams .toString (readerSupplier );
@@ -54,18 +61,21 @@ public final void givenUsingGuavaNoEncoding_whenConvertingAnInputStreamToAString
5461 }
5562
5663 @ Test
57- public final void givenUsingGuavaWithEncoding_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
64+ public final void givenUsingGuavaAndJava7_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
5865 final String originalString = randomAlphabetic (8 );
59- final InputSupplier < Reader > readerSupplier = ByteSource . wrap (originalString .getBytes ()). asCharSource ( Charsets . UTF_8 );
66+ final InputStream inputStream = new ByteArrayInputStream (originalString .getBytes ());
6067
6168 // When
62- final String text = CharStreams .toString (readerSupplier );
69+ String text = null ;
70+ try (final Reader reader = new InputStreamReader (inputStream )) {
71+ text = CharStreams .toString (reader );
72+ }
6373
6474 assertThat (text , equalTo (originalString ));
6575 }
6676
6777 @ Test
68- public final void givenUsingCommonsIoWithEncoding_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
78+ public final void givenUsingCommonsIo_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
6979 final String originalString = randomAlphabetic (8 );
7080 final InputStream inputStream = new ByteArrayInputStream (originalString .getBytes ());
7181
@@ -75,7 +85,7 @@ public final void givenUsingCommonsIoWithEncoding_whenConvertingAnInputStreamToA
7585 }
7686
7787 @ Test
78- public final void givenUsingCommonsIoWithEncoding2_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
88+ public final void givenUsingCommonsIoWithCopy_whenConvertingAnInputStreamToAString_thenCorrect () throws IOException {
7989 final String originalString = randomAlphabetic (8 );
8090 final InputStream inputStream = new ByteArrayInputStream (originalString .getBytes ());
8191
0 commit comments