public class PaymentRuleEngineTest {
public static void main(String[] args) throws Exception {
PaymentRuleEngine engine = new DefaultPaymentRuleEngine(
List.of(
new KycLimitRule(),
new RollingWindowLimitRule(100_000, 24 * 60 * 60 * 1000)
)
);
long now = System.currentTimeMillis();
Transaction t1 = new Transaction("U1", 25_000, now, KycStatus.NOT_KYC);
assert !engine.validate(t1);
Transaction t2 = new Transaction("U2", 60_000, now, KycStatus.KYC);
Transaction t3 = new Transaction("U2", 50_000, now + 1000, KycStatus.KYC);
assert engine.validate(t2);
assert !engine.validate(t3);
Thread.sleep(100);
Transaction t4 = new Transaction("U2", 40_000, now + 2000, KycStatus.KYC);
assert engine.validate(t4);
System.out.println("✅ PaymentRuleEngine tests passed");
}
}