@Test
  public void node_property_should_be_deleted() {
    NodeImpl node = new NodeImpl();
    Map<String, String> properties = new LinkedHashMap<>();
    properties.put("prop1", "val1");
    properties.put("prop2", "val2");
    properties.put("prop3", "val3");
    node.setProperties(properties);

    PropertyChange propertyChange = new PropertyChange("prop2"::equals, t -> null);

    propertyChange.consume(node);

    Map<String, String> newProperties = node.getProperties();
    assertThat(newProperties.size(), is(2));
    Iterator<Map.Entry<String, String>> propIter = newProperties.entrySet().iterator();

    Map.Entry<String, String> currentEntry = propIter.next();
    assertThat(currentEntry.getKey(), is(equalTo("prop1")));
    assertThat(currentEntry.getValue(), is(equalTo("val1")));

    currentEntry = propIter.next();
    assertThat(currentEntry.getKey(), is(equalTo("prop3")));
    assertThat(currentEntry.getValue(), is(equalTo("val3")));

    assertFalse(propIter.hasNext());
  }
  @Test
  public void revision_property_should_be_changed() {
    RevisionImpl revision = new RevisionImpl(2);
    Map<String, String> properties = new LinkedHashMap<>();
    properties.put("prop1", "val1");
    properties.put("prop2", "val2");
    properties.put("prop3", "val3");
    revision.setProperties(properties);

    PropertyChange propertyChange = new PropertyChange("prop2"::equals, t -> "d");

    propertyChange.consume(revision);

    Map<String, String> newProperties = revision.getProperties();
    assertThat(newProperties.size(), is(3));
    Iterator<Map.Entry<String, String>> propIter = newProperties.entrySet().iterator();

    Map.Entry<String, String> currentEntry = propIter.next();
    assertThat(currentEntry.getKey(), is(equalTo("prop1")));
    assertThat(currentEntry.getValue(), is(equalTo("val1")));

    currentEntry = propIter.next();
    assertThat(currentEntry.getKey(), is(equalTo("prop2")));
    assertThat(currentEntry.getValue(), is(equalTo("d")));

    currentEntry = propIter.next();
    assertThat(currentEntry.getKey(), is(equalTo("prop3")));
    assertThat(currentEntry.getValue(), is(equalTo("val3")));

    assertFalse(propIter.hasNext());
  }