### Question:
AuditAuthorizer implements IAuthorizer { @Override public Set<? extends IResource> protectedResources() { return wrappedAuthorizer.protectedResources(); } AuditAuthorizer(); @VisibleForTesting  AuditAuthorizer(IAuthorizer wrappedAuthorizer); @Override Set<Permission> authorize(AuthenticatedUser user, IResource resource); @Override void grant(AuthenticatedUser performer, Set<Permission> permissions, IResource resource, RoleResource grantee); @Override void revoke(AuthenticatedUser performer, Set<Permission> permissions, IResource resource, RoleResource revokee); @Override Set<PermissionDetails> list(AuthenticatedUser performer, Set<Permission> permissionFilter, IResource resourceFilter, RoleResource roleFilter); @Override void revokeAllFrom(RoleResource revokee); @Override void revokeAllOn(IResource droppedResource); @Override Set<? extends IResource> protectedResources(); @Override void validateConfiguration(); @Override void setup(); IAuthorizer getWrappedAuthorizer();  }### Answer:
@Test @SuppressWarnings("unchecked") public void testProtectedResourcesDelegation() { Set<IResource> expectedResources = givenProtectedCassandraResources(mockAuthorizer); Set<IResource> actualResources = (Set<IResource>) authorizer.protectedResources(); assertThat(actualResources).isEqualTo(expectedResources); verify(mockAuthorizer).protectedResources(); }