@Test
public void testPeekId3Data_returnId3TagAccordingToGivenPredicate_ifId3TagPresent()
    throws IOException, InterruptedException {

  Id3Peeker id3Peeker = new Id3Peeker();
  byte[] rawId3 =
      Id3DecoderTest.buildMultiFramesTag(
          new Id3DecoderTest.FrameSpec(
              "COMM",
              new byte[] {
                3, 101, 110, 103, 100, 101, 115, 99, 114, 105, 112, 116, 105, 111, 110, 0, 116,
                101, 120, 116, 0
              }),
          new Id3DecoderTest.FrameSpec(
              "APIC",
              new byte[] {
                3, 105, 109, 97, 103, 101, 47, 106, 112, 101, 103, 0, 16, 72, 101, 108, 108, 111,
                32, 87, 111, 114, 108, 100, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
              }));
  FakeExtractorInput input = new FakeExtractorInput.Builder().setData(rawId3).build();
  Metadata metadata =
      id3Peeker.peekId3Data(
          input,
          (majorVersion, id0, id1, id2, id3) ->
              id0 == 'C' && id1 == 'O' && id2 == 'M' && id3 == 'M');
  assertThat(metadata.length()).isEqualTo(1);
  CommentFrame commentFrame = (CommentFrame) metadata.get(0);
  assertThat(commentFrame.language).isEqualTo("eng");
  assertThat(commentFrame.description).isEqualTo("description");
  assertThat(commentFrame.text).isEqualTo("text");
}