@Override
  public int hashCode() {
    return Objects.hash( name, path, provider );
  }
@Test
  public void testHashCode() {
    Element element2 = new Element( NAME, TYPE, PATH, LOCAL_PROVIDER );
    assertEquals( element1.hashCode(), element2.hashCode() );
    element2 = new Element( "diffname", TYPE, "/tmp/diffname", LOCAL_PROVIDER );
    assertNotEquals( element1.hashCode(), element2.hashCode() );
    element2 = new Element( NAME, TYPE, PATH, "diffProvider" );
    assertNotEquals( element1.hashCode(), element2.hashCode() );
    element2 = new Element( NAME, EntityType.REPOSITORY_FILE, PATH, LOCAL_PROVIDER );
    // Changing the file type does not effect equals because in a map, if the path and provider are the same then
    // the files would live in the same physical space.
    assertEquals( element1.hashCode(), element2.hashCode() );

    // future proofing for unexpected null values
    assertNotEquals( new Element( null, null, null, null ).hashCode(),
        element2.hashCode() );
  }