### Question:
DecorateInstruction implements Instruction { @Override public int hashCode() { return Objects.hash(decorationKey, decorationValue); } DecorateInstruction(final Object decorationValue);  DecorateInstruction(final String decorationKey, final Object decorationValue); @Override void apply(final PositionSequence<Term> sequence, final TermMatches termMatches,
            final int startPosition, final int endPosition, final ExpandedQuery expandedQuery,
                      final SearchEngineRequestAdapter searchEngineRequestAdapter); @Override Set<Term> getGenerableTerms(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static final String DECORATION_CONTEXT_KEY; static final String DECORATION_CONTEXT_MAP_KEY; }### Answer:
@Test public void testHashCode() { DecorateInstruction deco1 = new DecorateInstruction("decoA"); DecorateInstruction deco2 = new DecorateInstruction("decoA"); DecorateInstruction deco3 = new DecorateInstruction("deco3"); Assert.assertEquals(deco1.hashCode(), deco2.hashCode()); Assert.assertNotEquals(deco1.hashCode(), deco3.hashCode()); Assert.assertNotEquals(deco2.hashCode(), deco3.hashCode()); }