### Question:
BinaryDataProvider extends AbstractConfigurableProvider implements MessageBodyReader<T>, MessageBodyWriter<T> { public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mt) { return byte[].class.isAssignableFrom(type) || InputStream.class.isAssignableFrom(type) || Reader.class.isAssignableFrom(type) || File.class.isAssignableFrom(type) || StreamingOutput.class.isAssignableFrom(type); }  boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mt); T readFrom(Class<T> clazz, Type genericType, Annotation[] annotations, MediaType type,
                           MultivaluedMap<String, String> headers, InputStream is); long getSize(T t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mt); boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mt); void writeTo(T o, Class<?> clazz, Type genericType, Annotation[] annotations,
                        MediaType type, MultivaluedMap<String, Object> headers, OutputStream os); void setReportByteArraySize(boolean report); void setCloseResponseInputStream(boolean closeResponseInputStream); void setBufferSize(int bufferSize);  }### Answer:
@Test public void testIsReadable() { MessageBodyReader<Object> p = new BinaryDataProvider<>(); assertTrue(p.isReadable(byte[].class, null, null, null) && p.isReadable(InputStream.class, null, null, null) && p.isReadable(File.class, null, null, null) && p.isReadable(StreamingOutput.class, null, null, null) && !p.isReadable(int[].class, null, null, null)); }