Align enum rawName with fn-form labels during canonicalization.
Derive transition and state rawName from package-canonical fullIdentifier so JSON exports stay consistent when bare constants or mismatched short forms appear in source. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -51,10 +51,33 @@ class MachineEnumCanonicalizerTest {
|
||||
|
||||
assertThat(transition.getEvent().fullIdentifier())
|
||||
.isEqualTo("com.example.order.OrderEvent.PAY");
|
||||
assertThat(transition.getEvent().rawName()).isEqualTo("OrderEvent.PAY");
|
||||
assertThat(transition.getSourceStates().get(0).fullIdentifier())
|
||||
.isEqualTo("com.example.order.OrderState.NEW");
|
||||
assertThat(transition.getSourceStates().get(0).rawName()).isEqualTo("OrderState.NEW");
|
||||
assertThat(transition.getTargetStates().get(0).fullIdentifier())
|
||||
.isEqualTo("com.example.order.OrderState.PAID");
|
||||
assertThat(transition.getTargetStates().get(0).rawName()).isEqualTo("OrderState.PAID");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldAlignBareRawNameToFnForm(@TempDir Path tempDir) throws IOException {
|
||||
writeSampleConfig(tempDir);
|
||||
|
||||
CodebaseContext context = new CodebaseContext();
|
||||
context.scan(tempDir);
|
||||
|
||||
StateMachineTypeResolver.MachineTypes types = StateMachineTypeResolver.resolveTypes(
|
||||
"com.example.config.OrderStateMachineConfiguration", context);
|
||||
|
||||
Transition transition = new Transition();
|
||||
transition.setEvent(Event.of("PAY", "PAY"));
|
||||
transition.setSourceStates(List.of(State.of("NEW", "NEW")));
|
||||
|
||||
MachineEnumCanonicalizer.canonicalizeTransitions(List.of(transition), types);
|
||||
|
||||
assertThat(transition.getEvent().rawName()).isEqualTo("OrderEvent.PAY");
|
||||
assertThat(transition.getSourceStates().get(0).rawName()).isEqualTo("OrderState.NEW");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user