VersionsEvent { @Override public int hashCode() { return Objects.hashCode(cmdLine, pythonVersion, robotVersion, protocolVersion, pid); } VersionsEvent(final VersionsEventResponder responder, final String cmdLine, final String pythonVersion,
            final String robotVersion, final int protocolVersion, final Optional<Long> pid); static VersionsEvent from(final AgentClient client, final Map<String, Object> eventMap); String getCommandLine(); String getPythonVersion(); String getRobotVersion(); int getProtocolVersion(); Optional<Long> getPid(); VersionsEventResponder responder(); @Override boolean equals(final Object obj); @Override int hashCode();  }
@Test public void hashCodeTests() { assertThat(new VersionsEvent(mock(VersionsEventResponder.class), "cmd", "3.6", "3.0", 2, Optional.of(42L)) .hashCode()).isEqualTo( new VersionsEvent(mock(VersionsEventResponder.class), "cmd", "3.6", "3.0", 2, Optional.of(42L)) .hashCode()); assertThat(new VersionsEvent(mock(VersionsEventResponder.class), "cmd", "3.6", "3.0", 2, Optional.of(42L)) .hashCode()).isEqualTo(new VersionsEvent(null, "cmd", "3.6", "3.0", 2, Optional.of(42L)).hashCode()); }