ImmutableExpressionResolver implements ExpressionResolver { @Override public String toString() { return getClass().getSimpleName() + " [" + ", placeholderReplacementInValidation=" + placeholderReplacementInValidation + ", placeholderResolvers=" + placeholderResolvers + "]"; } ImmutableExpressionResolver(final List<PlaceholderResolver<?>> placeholderResolvers);   ImmutableExpressionResolver(final List<PlaceholderResolver<?>> placeholderResolvers,
            @Nullable final String stringUsedInPlaceholderValidation); @Override PipelineElement resolveAsPipelineElement(final String placeholderExpression); @Override boolean equals(@Nullable final Object o); @Override int hashCode(); @Override String toString();  }
@Test public void testSuccessfulPlaceholderResolution() { assertThat(underTest.resolve("{{ header:one }}")) .contains(KNOWN_HEADERS.get("one")); assertThat(underTest.resolve("{{ header:two }}")) .contains(KNOWN_HEADERS.get("two")); assertThat(underTest.resolve("{{ thing:id }}")) .contains(THING_ID.toString()); assertThat(underTest.resolve("{{ thing:name }}")) .contains(THING_NAME); assertThat(underTest.resolve("{{ topic:full }}")) .contains(KNOWN_TOPIC); assertThat(underTest.resolve("{{ topic:entityId }}")) .contains(THING_NAME); assertThat(underTest.resolve("{{topic:entityId }}")) .contains(THING_NAME); assertThat(underTest.resolve("{{topic:entityId}}")) .contains(THING_NAME); assertThat(underTest.resolve("{{ topic:entityId}}")) .contains(THING_NAME); }