Class AbstractInputStreamAssert<SELF extends AbstractInputStreamAssert<SELF,ACTUAL>,ACTUAL extends InputStream>

java.lang.Object
org.assertj.core.api.AbstractAssert<SELF,ACTUAL>
org.assertj.core.api.AbstractInputStreamAssert<SELF,ACTUAL>
Type Parameters:
SELF - the "self" type of this assertion class. Please read "Emulating 'self types' using Java Generics to simplify fluent API implementation" for more details.
ACTUAL - the type of the "actual" value.
All Implemented Interfaces:
Assert<SELF,ACTUAL>, Descriptable<SELF>, ExtensionPoints<SELF,ACTUAL>
Direct Known Subclasses:
InputStreamAssert

public abstract class AbstractInputStreamAssert<SELF extends AbstractInputStreamAssert<SELF,ACTUAL>,ACTUAL extends InputStream> extends AbstractAssert<SELF,ACTUAL>
Base class for all implementations of assertions for InputStreams.
Author:
Matthieu Baechler, Mikhail Mazursky, Stefan Birkner
  • Constructor Details

    • AbstractInputStreamAssert

      protected AbstractInputStreamAssert(ACTUAL actual, Class<?> selfType)
  • Method Details

    • asString

      public AbstractStringAssert<?> asString(Charset charset)
      Converts the content of the actual InputStream to a String by decoding its bytes using the given charset and returns assertions for the computed String allowing String specific assertions from this call.

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Example :

       InputStream abcInputStream = new ByteArrayInputStream("abc".getBytes());
      
       // assertion succeeds
       assertThat(abcInputStream).asString(UTF_8)
                                 .startsWith("a");
      
       // assertion fails
       assertThat(abcInputStream).asString(UTF_8)
                                 .startsWith("e");
      Parameters:
      charset - the Charset to interpret the InputStream's content to a String
      Returns:
      a string assertion object.
      Throws:
      NullPointerException - if the given Charset is null.
      AssertionError - if the actual InputStream is null.
      UncheckedIOException - if an I/O error occurs.
      Since:
      3.20.0
    • hasContentEqualTo

      @Deprecated public SELF hasContentEqualTo(InputStream expected)
      Deprecated.
      Verifies that the content of the actual InputStream is equal to the content of the given one.
      Parameters:
      expected - the given InputStream to compare the actual InputStream to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given InputStream is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the content of the actual InputStream is not equal to the content of the given one.
      UncheckedIOException - if an I/O error occurs.
    • hasSameContentAs

      public SELF hasSameContentAs(InputStream expected)
      Verifies that the content of the actual InputStream is equal to the content of the given one.

      Warning: this will consume the whole input streams in case the underlying implementations do not support marking.

      Example:

       // assertion will pass
       assertThat(new ByteArrayInputStream(new byte[] {0xa})).hasSameContentAs(new ByteArrayInputStream(new byte[] {0xa}));
      
       // assertions will fail
       assertThat(new ByteArrayInputStream(new byte[] {0xa})).hasSameContentAs(new ByteArrayInputStream(new byte[] {}));
       assertThat(new ByteArrayInputStream(new byte[] {0xa})).hasSameContentAs(new ByteArrayInputStream(new byte[] {0xa, 0xc, 0xd}));
      Parameters:
      expected - the given InputStream to compare the actual InputStream to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given InputStream is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the content of the actual InputStream is not equal to the content of the given one.
      UncheckedIOException - if an I/O error occurs.
    • isEmpty

      public SELF isEmpty()
      Verifies that the content of the actual InputStream is empty.

      Warning: this will consume the first byte of the input stream in case the underlying implementation does not support marking.

      Example:

       // assertion will pass
       assertThat(new ByteArrayInputStream(new byte[] {})).isEmpty());
      
       // assertions will fail
       assertThat(new ByteArrayInputStream(new byte[] {0xa})).isEmpty(); 
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given InputStream is null.
      AssertionError - if the content of the actual InputStream is not empty.
      UncheckedIOException - if an I/O error occurs.
      Since:
      3.17.0
    • isNotEmpty

      public SELF isNotEmpty()
      Verifies that the content of the actual InputStream is not empty.

      Warning: this will consume the first byte of the input stream in case the underlying implementation does not support marking.

      Example:

       // assertion will pass
       assertThat(new ByteArrayInputStream(new byte[] {0xa})).isNotEmpty());
      
       // assertions will fail
       assertThat(new ByteArrayInputStream(new byte[] {})).isNotEmpty();
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given InputStream is null.
      AssertionError - if the content of the actual InputStream is empty.
      UncheckedIOException - if an I/O error occurs.
      Since:
      3.17.0
    • hasContent

      public SELF hasContent(String expected)
      Verifies that the content of the actual InputStream is equal to the given String except for newlines wich are ignored.

      This will change in AssertJ 4.0 where newlines will be taken into account, in the meantime, to get this behavior one can use asString(Charset) and then chain with AbstractStringAssert.isEqualTo(String).

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Example:

       // assertion will pass
       assertThat(new ByteArrayInputStream("a".getBytes())).hasContent("a");
      
       // assertions will fail
       assertThat(new ByteArrayInputStream("a".getBytes())).hasContent("");
       assertThat(new ByteArrayInputStream("a".getBytes())).hasContent("ab");
      Parameters:
      expected - the given String to compare the actual InputStream to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given String is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the content of the actual InputStream is not equal to the given String.
      UncheckedIOException - if an I/O error occurs.
      Since:
      3.11.0
    • hasBinaryContent

      public SELF hasBinaryContent(byte[] expected)
      Verifies that the binary content of the actual InputStream is exactly equal to the given one.

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Example:

       InputStream inputStream = new ByteArrayInputStream(new byte[] {1, 2});
      
       // assertion will pass
       assertThat(inputStream).hasContent(new byte[] {1, 2});
      
       // assertions will fail
       assertThat(inputStream).hasBinaryContent(new byte[] { });
       assertThat(inputStream).hasBinaryContent(new byte[] {0, 0});
      Parameters:
      expected - the expected binary content to compare the actual InputStream's content to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given content is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the content of the actual InputStream is not equal to the given binary content.
      UncheckedIOException - if an I/O error occurs.
      Since:
      3.16.0
    • hasDigest

      public SELF hasDigest(MessageDigest algorithm, byte[] expected)
      Verifies that the tested InputStream digest (calculated with the specified MessageDigest) is equal to the given one.

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Examples:

       // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
       InputStream tested = new FileInputStream(new File("assertj-core-2.9.0.jar"));
      
       // The following assertions succeed:
       assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), new byte[]{92, 90, -28, 91, 88, -15, 32, 35, -127, 122, -66, 73, 36, 71, -51, -57, -111, 44, 26, 44});
       assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), new byte[]{-36, -77, 1, 92, -46, -124, 71, 100, 76, -127, 10, -13, 82, -125, 44, 25});
      
       // The following assertions fail:
       assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad".getBytes());
       assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), "3735dff8e1f9df0492a34ef075205b8f".getBytes());
      Parameters:
      algorithm - the MessageDigest used to calculate the digests.
      expected - the expected binary content to compare the actual InputStream's digest to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given algorithm is null.
      NullPointerException - if the given digest is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the actual InputStream is not readable.
      UncheckedIOException - if an I/O error occurs.
      AssertionError - if the content of the tested InputStream's digest is not equal to the given one.
      Since:
      3.11.0
    • hasDigest

      public SELF hasDigest(MessageDigest algorithm, String digest)
      Verifies that the tested InputStream digest (calculated with the specified MessageDigest) is equal to the given one.

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Examples:

       // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
       InputStream tested = new FileInputStream(new File("assertj-core-2.9.0.jar"));
      
       // The following assertions succeed:
       assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), "5c5ae45b58f12023817abe492447cdc7912c1a2c");
       assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), "dcb3015cd28447644c810af352832c19");
      
       // The following assertions fail:
       assertThat(tested).hasDigest(MessageDigest.getInstance("SHA1"), "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad");
       assertThat(tested).hasDigest(MessageDigest.getInstance("MD5"), "3735dff8e1f9df0492a34ef075205b8f");
      Parameters:
      algorithm - the MessageDigest used to calculate the digests.
      digest - the expected binary content to compare the actual InputStream's digest to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given algorithm is null.
      NullPointerException - if the given digest is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the actual InputStream is not readable.
      UncheckedIOException - if an I/O error occurs.
      AssertionError - if the content of the tested InputStream's digest is not equal to the given one.
      Since:
      3.11.0
    • hasDigest

      public SELF hasDigest(String algorithm, byte[] expected)
      Verifies that the tested InputStream digest (calculated with the specified algorithm) is equal to the given one.

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Examples:

       // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
       InputStream tested = new FileInputStream(new File("assertj-core-2.9.0.jar"));
      
       // The following assertion succeeds:
       assertThat(tested).hasDigest("SHA1", new byte[]{92, 90, -28, 91, 88, -15, 32, 35, -127, 122, -66, 73, 36, 71, -51, -57, -111, 44, 26, 44});
       assertThat(tested).hasDigest("MD5", new byte[]{-36, -77, 1, 92, -46, -124, 71, 100, 76, -127, 10, -13, 82, -125, 44, 25});
      
       // The following assertion fails:
       assertThat(tested).hasDigest("SHA1", "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad".getBytes());
       assertThat(tested).hasDigest("MD5", "3735dff8e1f9df0492a34ef075205b8f".getBytes()); 
      Parameters:
      algorithm - the algorithm used to calculate the digests.
      expected - the expected binary content to compare the actual InputStream's content to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given algorithm is null.
      NullPointerException - if the given digest is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the actual InputStream is not readable.
      UncheckedIOException - if an I/O error occurs.
      AssertionError - if the content of the tested InputStream's digest is not equal to the given one.
      Since:
      3.11.0
    • hasDigest

      public SELF hasDigest(String algorithm, String digest)
      Verifies that the tested InputStream digest (calculated with the specified algorithm) is equal to the given one.

      Warning: this will consume the whole input stream in case the underlying implementation does not support marking.

      Examples:

       // assume that assertj-core-2.9.0.jar was downloaded from https://repo1.maven.org/maven2/org/assertj/assertj-core/2.9.0/assertj-core-2.9.0.jar
       InputStream tested = new FileInputStream(new File("assertj-core-2.9.0.jar"));
      
       // The following assertion succeeds:
       assertThat(tested).hasDigest("SHA1", "5c5ae45b58f12023817abe492447cdc7912c1a2c");
       assertThat(tested).hasDigest("MD5", "dcb3015cd28447644c810af352832c19");
      
       // The following assertion fails:
       assertThat(tested).hasDigest("SHA1", "93b9ced2ee5b3f0f4c8e640e77470dab031d4cad");
       assertThat(tested).hasDigest("MD5", "3735dff8e1f9df0492a34ef075205b8f"); 
      Parameters:
      algorithm - the algorithm used to calculate the digests.
      digest - the expected binary content to compare the actual InputStream's content to.
      Returns:
      this assertion object.
      Throws:
      NullPointerException - if the given algorithm is null.
      NullPointerException - if the given digest is null.
      AssertionError - if the actual InputStream is null.
      AssertionError - if the actual InputStream is not readable.
      UncheckedIOException - if an I/O error occurs.
      AssertionError - if the content of the tested InputStream's digest is not equal to the given one.
      Since:
      3.11.0