SubstitutionStrategyRegistry { List<SubstitutionStrategy> getStrategies() { return strategies; } private  SubstitutionStrategyRegistry(); static SubstitutionStrategyRegistry newInstance(); final Optional<SubstitutionStrategy> getMatchingStrategy(final WithDittoHeaders withDittoHeaders);  }
@Test public void allSubstitutionStrategiesHaveBeenConfigured() throws UnsupportedEncodingException { final List<SubstitutionStrategy> strategies = underTest.getStrategies(); final List<Class<? extends SubstitutionStrategy>> actualStrategyClasses = strategies.stream().map(SubstitutionStrategy::getClass).collect(Collectors.toList()); final List<Class<? extends SubstitutionStrategy>> expectedStrategyClasses = getAllStrategyClasses(); assertThat(actualStrategyClasses).hasSameElementsAs(expectedStrategyClasses); }