@Test
public void testCreateCacheRemoveInvocationContext_givenMethodAnnotatedWithCacheRemove_shouldCreateCorrectCacheKeyInvocationContext()
        throws NoSuchMethodException {

    // given
    TestCacheClass testCacheClass = new TestCacheClass();
    String param1 = "val_1";
    MetaHolder metaHolder = MetaHolder.builder()
            .method(TestCacheClass.class.getMethod("cacheRemoveMethod", String.class))
            .args(new Object[]{param1})
            .obj(testCacheClass).build();
    // when
    CacheInvocationContext<CacheRemove> context = CacheInvocationContextFactory.createCacheRemoveInvocationContext(metaHolder);
    // then
    assertNotNull(context.getKeyParameters());
    assertEquals(1, context.getKeyParameters().size());
    CacheInvocationParameter actual = context.getKeyParameters().get(0);
    assertEquals(String.class, actual.getRawType());
    assertEquals(param1, actual.getValue());
    assertEquals(0, actual.getPosition());
}