@Test
public void propertiesAndOptionsAreUsedInEquals() {

    Symbol symbol = Symbol.builder().name("foo").build();
    SymbolReference ref1 = new SymbolReference(symbol);
    SymbolReference ref2 = new SymbolReference(
            symbol, MapUtils.of("foo", true), SymbolReference.ContextOption.USE);
    SymbolReference ref3 = new SymbolReference(symbol, SymbolReference.ContextOption.USE);
    assertThat(ref1, equalTo(ref1));
    assertThat(ref1, not(equalTo(ref2)));
    assertThat(ref1, not(equalTo(ref3)));
    assertThat(ref2, not(equalTo(ref3)));
}