### Question:
FormEncodingProvider extends AbstractConfigurableProvider implements MessageBodyReader<T>, MessageBodyWriter<T> { public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mt) { return isSupported(type, mt); } FormEncodingProvider();  FormEncodingProvider(boolean expectEncoded); void setExpectedEncoded(boolean expect); void setAttachmentDirectory(String dir); void setAttachmentThreshold(String threshold); void setAttachmentMaxSize(String maxSize); void setValidator(FormValidator formValidator); boolean isReadable(Class<?> type, Type genericType,
                              Annotation[] annotations, MediaType mt); T readFrom(
        Class<T> clazz, Type genericType, Annotation[] annotations, MediaType mt,
        MultivaluedMap<String, String> headers, InputStream is); long getSize(T t, Class<?> type,
                        Type genericType, Annotation[] annotations,
                        MediaType mediaType); boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations,
                               MediaType mt); @SuppressWarnings("unchecked") void writeTo(T obj, Class<?> c, Type t, Annotation[] anns,
                        MediaType mt, MultivaluedMap<String, Object> headers, OutputStream os);  }### Answer:
@Test public void testReadableMap() { FormEncodingProvider<MultivaluedMap<String, String>> ferp = new FormEncodingProvider<>(); assertTrue(ferp.isReadable(MultivaluedMap.class, null, null, null)); }
@Test public void testReadableForm() { FormEncodingProvider<Form> ferp = new FormEncodingProvider<>(); assertTrue(ferp.isReadable(Form.class, null, null, null)); }