@Test
public void testValidateImpersonatorByUserWhitelist() {

    // Wildcard
    ProxyUserValidation.validateImpersonator(PRESTO, ALICE);
    ProxyUserValidation.validateImpersonator(PRESTO, BOB);
    ProxyUserValidation.validateImpersonator(PRESTO, CHARLIE);
    // Specific users
    ProxyUserValidation.validateImpersonator(STORM, ALICE);
    ProxyUserValidation.validateImpersonator(STORM, BOB);
    try {
        ProxyUserValidation.validateImpersonator(STORM, CHARLIE);
        fail();
    } catch (StatusRuntimeException e) {
        assertEquals(Status.PERMISSION_DENIED.getCode(), e.getStatus().getCode());
        assertEquals("Impersonation disallowed for `storm/testhost@EXAMPLE.COM`", e.getStatus().getDescription());
    }
}