private void assertRestorable(ValueOption<?> option) {
CsvConfiguration conf = createConfiguration();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
try (CsvEmitter emitter = new CsvEmitter(buffer, testName.getMethodName(), conf)) {
emit(emitter, option);
emitter.endRecord();
emitter.close();
try (CsvParser parser = new CsvParser(
new ByteArrayInputStream(buffer.toByteArray()), testName.getMethodName(), conf)) {
assertThat(parser.next(), is(true));
ValueOption<?> copy = option.getClass().newInstance();
fill(parser, copy);
parser.endRecord();
assertThat(parser.next(), is(false));
assertThat(copy, is((Object) option));
}
} catch (Exception e) {
throw new AssertionError(e);
}
}