Fail closed on cross-package enum switch constraints
Switch-arm equality now requires compatible enum types when both sides are package-qualified, while still accepting import-style vs FQN pairs like DomainCommand.ORDER_PAY. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -29,6 +29,20 @@ class BooleanConstraintEvaluatorBindingsTest {
|
||||
Map.of("commandKey", "order.pay"))).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldRejectCrossPackageQualifiedEnumSwitchConstraint() {
|
||||
assertThat(BooleanConstraintEvaluator.isCompatibleWithBindings(
|
||||
"command == a.OrderEvent.PAY",
|
||||
Map.of("command", "b.OrderEvent.PAY"))).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldAcceptPackageQualifiedRhsAgainstImportStyleBinding() {
|
||||
assertThat(BooleanConstraintEvaluator.isCompatibleWithBindings(
|
||||
"command == com.example.DomainCommand.ORDER_PAY",
|
||||
Map.of("command", "DomainCommand.ORDER_PAY"))).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldRejectConstraintWhenBindingIsMissing() {
|
||||
assertThat(BooleanConstraintEvaluator.isCompatibleWithBindings(
|
||||
|
||||
Reference in New Issue
Block a user