@Test
public void valid() throws Throwable {

    Assume.assumeTrue(isValid);
    when(pjp.proceed()).thenReturn(expectedValue);
    assertEquals(expectedValue, advice.cacheInvalidateMulti(pjp));
    verify(pjp).proceed();
    verify(cache).delete(argThat(new ArgumentMatcher<Collection<String>>() {
        @Override
        public boolean matches(Collection<String> set) {
            Set<String> target = new HashSet<String>(Arrays.asList(cacheKeys));
            return set.containsAll(target) && target.containsAll(set);
        }
    }));
}