@Override
    public boolean put(final V value,
                       final T t) {
        addToCounter();

        final boolean put = map.put(value,
                                    t);

        addToChangeSet(value,
                       t);

        fire();

        return put;
    }
@Test
    void testPut() throws Exception {
        map.put(new Value("hello"), "test");

        assertThat(changeSet.getAdded().get(new Value("hello"))).contains("test");
        assertThat(timesCalled).isEqualTo(1);
    }