Discover Converter capabilities and validate shared binding drafts

This commit is contained in:
2026-11-13 12:58:08 +01:00
parent 17b1bce704
commit 5a208d2336
35 changed files with 1096 additions and 34 deletions
@@ -90,6 +90,45 @@ public final class PreviewChecks {
check(
System.getProperty("fixture.provider.initialized") == null,
"Discovery initialized provider");
try (var in = loader.getResourceAsStream("fixture/components/Full.fxml")) {
String full = new String(in.readAllBytes(), java.nio.charset.StandardCharsets.UTF_8);
var details = BindingDiscovery.inspect(full, "rank", "both", "rankInput", "text", loader);
check(
details.problems().isEmpty(),
"Valid converter binding rejected: " + details.problems());
for (var expected :
java.util.Map.of(
"RankConverter",
"COMPATIBLE",
"LegacyRankConverter",
"UNVERIFIED",
"BrokenReverseConverter",
"ERROR",
"ForwardRankConverter",
"INCOMPATIBLE")
.entrySet())
check(
details.converters().stream()
.anyMatch(
c ->
c.name().equals("fixture.components." + expected.getKey())
&& c.status().equals(expected.getValue())),
"Converter status: " + expected);
var invalid =
BindingDiscovery.inspect(
full.replace(
"converter=\"fixture.components.RankConverter\"",
"converter=\"fixture.components.BrokenReverseConverter\""),
"rank",
"both",
loader);
check(
invalid.problems().stream().anyMatch(v -> v.severity().equals("ERROR")),
"Invalid reverse metadata accepted");
check(
System.getProperty("fixture.converter.initialized") == null,
"Discovery initialized Converter");
}
System.out.println("PASS bindings " + checks);
return;
}