WrappingByteSource implements ByteSource { public WrappingByteSource wrap(byte[] bytes) { return wrap(bytes, 0, bytes.length); } WrappingByteSource();  WrappingByteSource(byte[] bytes);  WrappingByteSource(byte[] bytes, int offset, int length); static WrappingByteSource fromByteBuffer(ByteBuffer byteBuffer); WrappingByteSource wrap(byte[] bytes); WrappingByteSource wrap(byte[] bytes, int offset, int length); @Override byte[] byteArray(); @Override int byteArrayOffset(); @Override int byteArrayLength(); @Override int compareTo(ByteSource o); @Override byte[] toByteSubarray(); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }
@Test public void totallyFine() { byte[] bytes = new byte[10]; check(wrap(bytes, 3, 5), bytes, 3, 5); }
@Test public void simpleWrap() { byte[] bytes = new byte[10]; check(wrap(bytes), bytes, 0, 10); }
@Test public void offsetAndLengthZero() { byte[] bytes = new byte[10]; check(wrap(bytes, 0, 0), bytes, 0, 0); }
@Test public void offsetSizeAndLengthZero() { byte[] bytes = new byte[0]; check(wrap(bytes, 0, 0), bytes, 0, 0); }
@Test public void offsetAtEdge() { byte[] bytes = new byte[10]; check(wrap(bytes, 9, 0), bytes, 9, 0); check(wrap(bytes, 10, 0), bytes, 10, 0); }
@Test(expected = IllegalArgumentException.class) public void offsetPastEdge() { wrap(new byte[10], 11, 0); }
@Test public void lengthAtEdge() { byte[] bytes = new byte[10]; check(wrap(bytes, 0, 10), bytes, 0, 10); check(wrap(bytes, 1, 9), bytes, 1, 9); }
@Test(expected = IllegalArgumentException.class) public void lengthPastEdge() { wrap(new byte[10], 1, 10); }
@Test(expected = IllegalArgumentException.class) public void nullBytes() { wrap(null, 0, 0); }
@Test(expected = IllegalArgumentException.class) public void negativeOffset() { wrap(new byte[10], -1, 0); }
@Test(expected = IllegalArgumentException.class) public void negativeLength() { wrap(new byte[10], 0, -1); }