package com.github.scribejava.core.utils; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import org.junit.Test; public class StreamUtilsTest { private static final InputStream ALLWAYS_ERROR_INPUT_STREAM = new AllwaysErrorInputStream(); private static class AllwaysErrorInputStream extends InputStream { @Override public int read() throws IOException { throw new IOException(); } } @Test public void shouldCorrectlyDecodeAStream() throws IOException { final String value = "expected"; final InputStream is = new ByteArrayInputStream(value.getBytes()); final String decoded = StreamUtils.getStreamContents(is); assertEquals("expected", decoded); } @Test(expected = IllegalArgumentException.class) public void shouldFailForNullParameter() throws IOException { StreamUtils.getStreamContents(null); fail("Must throw exception before getting here"); } @Test(expected = IOException.class) public void shouldFailWithBrokenStream() throws IOException { // This object simulates problems with input stream. StreamUtils.getStreamContents(ALLWAYS_ERROR_INPUT_STREAM); fail("Must throw exception before getting here"); } }