package jnpf.limsService.support; import jnpf.limsEntity.LimsMessageEvent; import jnpf.limsEntity.LimsRecipientRef; import jnpf.limsEntity.LimsRecipientType; import java.util.HashSet; import java.util.Set; /** Lightweight contract probe; run with its main method in environments without a test runner. */ public class LimsMessageContractChecks { public static void main(String[] args) { assertEquals(LimsMessageEvent.INSPECTION_TASK_DUE, LimsMessageEvent.fromCode("LIMS.INSPECTION.TASK.DUE")); assertEquals(LimsMessageEvent.WATER_SAMPLING_DUE, LimsMessageEvent.fromCode("LIMS.WATER.SAMPLING.DUE")); assertEquals(LimsRecipientType.USER, LimsRecipientRef.user("u1").getType()); assertEquals(LimsRecipientType.POSITION, LimsRecipientRef.position("p1").getType()); assertEquals(LimsRecipientType.ROLE, LimsRecipientRef.role("r1").getType()); assertEquals(LimsRecipientType.ROLE_ENCODE, LimsRecipientRef.roleEnCode("ROLE.005").getType()); Set codes = new HashSet<>(); for (LimsMessageEvent event : LimsMessageEvent.values()) { assertTrue(codes.add(event.getCode()), "duplicate event code: " + event.getCode()); assertTrue(event.getCode().matches("[A-Z0-9](?:[A-Z0-9.]*[A-Z0-9])?"), "invalid event code: " + event.getCode()); } } private static void assertEquals(Object expected, Object actual) { if (!expected.equals(actual)) { throw new AssertionError("expected=" + expected + ", actual=" + actual); } } private static void assertTrue(boolean value, String message) { if (!value) { throw new AssertionError(message); } } }