package jnpf.audit.sdk.aspect;
|
|
import java.nio.charset.StandardCharsets;
|
import java.util.Base64;
|
|
/** Header decoding and title sanitizing checks; runnable without a test framework. */
|
public final class AuditRequestTitleResolverChecks {
|
|
private AuditRequestTitleResolverChecks() {
|
}
|
|
public static void main(String[] args) {
|
String encoded = Base64.getEncoder().encodeToString(("["
|
+ "{\"field\":\"code\",\"displayValue\":\"LIMS-001\"},"
|
+ "{\"field\":\"product\",\"displayValue\":\"阿莫西林\\n胶囊\"}"
|
+ "]").getBytes(StandardCharsets.UTF_8));
|
check("LIMS-001/阿莫西林 胶囊".equals(AuditRequestTitleResolver.resolveEncoded(encoded)));
|
String full = repeat('a', 400);
|
String capped = encode("[{\"displayValue\":\"" + full + "\"},{\"displayValue\":\"tail\"}]");
|
check(full.equals(AuditRequestTitleResolver.resolveEncoded(capped)));
|
check(AuditRequestTitleResolver.resolveEncoded("not-base64") == null);
|
check(AuditRequestTitleResolver.resolveEncoded(null) == null);
|
System.out.println("AuditRequestTitleResolverChecks: all checks passed");
|
}
|
|
private static void check(boolean condition) {
|
if (!condition) {
|
throw new AssertionError();
|
}
|
}
|
|
private static String encode(String value) {
|
return Base64.getEncoder().encodeToString(value.getBytes(StandardCharsets.UTF_8));
|
}
|
|
private static String repeat(char value, int count) {
|
StringBuilder out = new StringBuilder(count);
|
for (int i = 0; i < count; i++) {
|
out.append(value);
|
}
|
return out.toString();
|
}
|
}
|