### Question:
ScriptDocumentation implements Described { @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((boundTransaction == null) ? 0 : boundTransaction.hashCode()); result = prime * result + description.hashCode(); result = prime * result + scriptArguments.hashCode(); return result; } ScriptDocumentation();  ScriptDocumentation(final String description, final Integer boundTransaction,
            final List<ScriptArgument> scriptArguments); @Override boolean equals(final Object obj); Integer getBoundTransaction(); @Override String getDescription(); List<ScriptArgument> getScriptArguments(); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEqualsNoBoundTransaction() { final ScriptDocumentation first = new ScriptDocumentation(description, null, arguments); final ScriptDocumentation second = new ScriptDocumentation(description, null, arguments); assertThat(first).isEqualTo(second); assertThat(second).isEqualTo(first); assertThat(first.hashCode()).isEqualTo(second.hashCode()); }