@Test
public void remove() throws Exception {

    multiMap.put("first", new TestEntity("1", "v1"));
    multiMap.put("first", new TestEntity("2", "v2"));
    assertThat(multiMap.remove(null, null)).isFalse();
    assertThat(multiMap.remove("first", null)).isFalse();
    assertThat(multiMap.remove(null, new TestEntity("foo", "bar"))).isFalse();
    assertThat(multiMap.remove("first", new TestEntity("foo", "bar"))).isFalse();
    assertThat(multiMap.remove("first", new TestEntity("v1", "bar"))).isFalse();
    assertThat(multiMap.get("first")).hasSize(2);
    assertThat(multiMap.remove("first", new TestEntity("1", "v1"))).isTrue();
    assertThat(multiMap.get("first")).hasSize(1)
            .doesNotContain(new TestEntity("1", "v1"));
}