@Test
public void shouldPrepareParameterOnlyOnceAndUseCacheInConsequentTries() {

    // given
    Parameter parameter = parameter().withEntries().build();
    when(cache.get("param")).thenReturn(null).thenReturn(preparedParameter().forParameter(parameter).build());
    when(paramProvider.load("param")).thenReturn(repositoryParameter(parameter).build());
    // when
    manager.getPreparedParameter("param");
    manager.getPreparedParameter("param");
    // then
    verify(cache, times(2)).get("param");
    verify(cache, times(1)).put(eq("param"), any(PreparedParameter.class));
}