### Question:
Pac4jClientConfigurationDecorator implements ClientConfigurationDecorator { @Override public void decorateClients(List<Client> clients, Map<String, String> properties) { decorators.forEach(decorator -> decorator.decorateClients(clients, properties)); } Pac4jClientConfigurationDecorator();   Pac4jClientConfigurationDecorator(List<ClientConfigurationDecorator> decorators); @Override void decorateClients(List<Client> clients, Map<String, String> properties);  }### Answer:
@Test public void testClientConfigDecoration() throws Exception { final AtomicInteger tested = new AtomicInteger(0); final AtomicInteger decorated = new AtomicInteger(0); final ClientConfigurationDecorator passiveDecorator = new TestClientConfigurationDecorator(tested, decorated, false); final ClientConfigurationDecorator activeDecorator = new TestClientConfigurationDecorator(tested, decorated, true); final Pac4jClientConfigurationDecorator pac4jConfigurationDecorator = new Pac4jClientConfigurationDecorator(Arrays.asList(passiveDecorator, activeDecorator)); final Client client = EasyMock.createNiceMock(Client.class); pac4jConfigurationDecorator.decorateClients(Collections.singletonList(client), null); assertEquals(2, tested.get()); assertEquals(1, decorated.get()); }