001 package org.fest.assertions.api; 002 003 import java.io.InputStream; 004 005 import org.fest.assertions.internal.InputStreams; 006 import org.fest.assertions.internal.InputStreamsException; 007 import org.fest.util.VisibleForTesting; 008 009 /** 010 * Assertion methods for <code>{@link InputStream}</code>s. 011 * <p> 012 * To create a new instance of this class, invoke <code>{@link Assertions#assertThat(InputStream)}</code>. 013 * </p> 014 * @author Matthieu Baechler 015 */ 016 public class InputStreamAssert extends AbstractAssert<InputStreamAssert, InputStream> { 017 018 @VisibleForTesting 019 InputStreams inputStreams = InputStreams.instance(); 020 021 public InputStreamAssert(InputStream actual) { 022 super(actual, InputStreamAssert.class); 023 } 024 025 /** 026 * Verifies that the content of the actual {@code InputStream} is equal to the content of the given one. 027 * 028 * @param expected the given {@code InputStream} to compare the actual {@code InputStream} to. 029 * @return {@code this} assertion object. 030 * @throws NullPointerException if the given {@code InputStream} is {@code null}. 031 * @throws AssertionError if the actual {@code InputStream} is {@code null}. 032 * @throws AssertionError if the content of the actual {@code InputStream} is not equal to the content of the given 033 * one. 034 * @throws InputStreamsException if an I/O error occurs. 035 */ 036 public InputStreamAssert hasContentEqualTo(InputStream expected) { 037 inputStreams.assertEqualContent(info, actual, expected); 038 return this; 039 } 040 041 }