@Test
public void trivialSunnyDayScenario1()
                                      throws ExecutionException {

    cache = builder.build( TestEntity1.class );
    for ( int i = 0; i < 100; i++ ) {
        final String key = String.valueOf( System.currentTimeMillis() + i );
        assertThat( cache.getIfPresent( key ), is( nullValue() ) );
        cache.get( key, new Callable<TestEntity1>() {
            @Override
            public TestEntity1 call() {
                Uninterruptibles.sleepUninterruptibly( 10, TimeUnit.NANOSECONDS );
                TestEntity1 entity = new TestEntity1();
                entity.afterPropertiesSet();
                entity.setUniqueIdentifier( key );
                return entity;
            }
        } );
        assertThat( (int) cache.size(), is( i + 1 ) );
        assertThat( cache.getIfPresent( key ).getUniqueIdentifier(), is( key ) );
    }
    assertThat( cache.stats().hitCount(), is( 100L ) );
    assertThat( cache.stats().loadCount(), is( 100L ) );
    assertThat( cache.stats().missCount(), is( 200L ) );
    assertThat( cache.stats().averageLoadPenalty(), is( greaterThan( 0D ) ) );
}