@SuppressWarnings("unchecked")
    public final <T> T getValue(final E key) {
        return (T) cache.get(key).getValue();
    }
@Test
    void assertGetValue() {
        Properties props = createProperties();
        TypedPropertiesFixture actual = new TypedPropertiesFixture(props);
        assertTrue((Boolean) actual.getValue(TypedPropertyKeyFixture.BOOLEAN_VALUE));
        assertTrue((Boolean) actual.getValue(TypedPropertyKeyFixture.BOOLEAN_OBJECT_VALUE));
        assertThat(actual.getValue(TypedPropertyKeyFixture.INT_VALUE), is(100));
        assertThat(actual.getValue(TypedPropertyKeyFixture.INT_OBJECT_VALUE), is(100));
        assertThat(actual.getValue(TypedPropertyKeyFixture.LONG_VALUE), is(10000L));
        assertThat(actual.getValue(TypedPropertyKeyFixture.LONG_OBJECT_VALUE), is(10000L));
        assertThat(actual.getValue(TypedPropertyKeyFixture.STRING_VALUE), is("new_value"));
        assertThat(actual.getProps(), is(props));
    }