刘光辉
15 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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<String> 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);
        }
    }
}