@Test
    public void delegateIsInvokedTest() throws Exception {
        SubstituteLogger substituteLogger = new SubstituteLogger("foo", null, false);
        assertTrue(substituteLogger.delegate() instanceof EventRecordingLogger);

        Set<String> expectedMethodSignatures = determineMethodSignatures(Logger.class);
        LoggerInvocationHandler loggerInvocationHandler = new LoggerInvocationHandler();
        Logger proxyLogger = (Logger) Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] { Logger.class }, loggerInvocationHandler);
        substituteLogger.setDelegate(proxyLogger);

        invokeAllMethodsOf(substituteLogger);

        // Assert that all methods are delegated
        expectedMethodSignatures.removeAll(loggerInvocationHandler.getInvokedMethodSignatures());
        if (!expectedMethodSignatures.isEmpty()) {
            fail("Following methods are not delegated " + expectedMethodSignatures.toString());
        }
    }
Test that all SubstituteLogger methods invoke the delegate, except for explicitly excluded  methods.
slf4j-api/src/test/java/org/slf4j/helpers/SubstitutableLoggerTest.java