### Question:
NonOptionArgumentSpec extends AbstractOptionSpec<V> { @SuppressWarnings( "unchecked" ) public final <T> NonOptionArgumentSpec<T> withValuesConvertedBy( ValueConverter<T> aConverter ) { if ( aConverter == null ) throw new NullPointerException( "illegal null converter" ); converter = (ValueConverter<V>) aConverter; return (NonOptionArgumentSpec<T>) this; } NonOptionArgumentSpec();   NonOptionArgumentSpec( String description ); @SuppressWarnings( "unchecked" ) NonOptionArgumentSpec<T> ofType( Class<T> argumentType ); @SuppressWarnings( "unchecked" ) final NonOptionArgumentSpec<T> withValuesConvertedBy( ValueConverter<T> aConverter ); NonOptionArgumentSpec<V> describedAs( String description ); List<?> defaultValues(); boolean isRequired(); boolean acceptsArguments(); boolean requiresArgument(); String argumentDescription(); String argumentTypeIndicator(); boolean representsNonOptions();  }### Answer:
@Test public void convertingUsingConverter() throws Exception { OptionSpec<Date> date = parser.nonOptions().withValuesConvertedBy( datePattern( "MM/dd/yyyy" ) ); OptionSet options = parser.parse( "01/24/2013" ); assertEquals( singletonList( new SimpleDateFormat( "MM/dd/yyyy" ).parse( "01/24/2013" ) ), date.values( options ) ); }
@Test( expected = NullPointerException.class ) public void convertingUsingNullConverter() { parser.nonOptions().withValuesConvertedBy( null ); }