@Test
public void testValues() {

    subject.put(FIRST_TEST_KEY, CACHE_ACTION);
    // use the same key twice
    String value1 = subject.get(FIRST_TEST_KEY);
    assertNotNull(value1);
    String value2 = subject.get(FIRST_TEST_KEY);
    assertNotNull(value2);
    assertEquals(value1, value2);
    subject.put(SECOND_TEST_KEY, CACHE_ACTION);
    // use a different key
    String value3 = subject.get(SECOND_TEST_KEY);
    assertNotNull(value3);
    assertNotEquals(value1, value3);
    // get all values
    final Collection<String> expectedValues = new LinkedList<>();
    expectedValues.add(value3);
    expectedValues.add(value1);
    final Collection<String> values = subject.values();
    assertEquals(expectedValues, values);
    // use another different key
    String value4 = subject.get("KEY_NOT_FOUND");
    assertNull(value4);
}