A field hint customizer can downgrade allowWrite
if true
is called before false
. Here's a failing test:
@Test
void registerFieldWithCustomizersCannotDowngradeWrite() {
Field field = ReflectionUtils.findField(TestType.class, "field");
assertThat(field).isNotNull();
this.reflectionHints.registerField(field, fieldHint -> fieldHint.allowWrite(true));
this.reflectionHints.registerField(field, fieldHint -> fieldHint.allowWrite(false));
assertTestTypeFieldHint(fieldHint -> {
assertThat(fieldHint.getName()).isEqualTo("field");
assertThat(fieldHint.isAllowWrite()).isTrue();
});
}