package com.google.sitebricks.slf4j; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; import org.slf4j.Logger; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import static org.testng.AssertJUnit.assertNotNull; /** * @author dhanji@gmail.com (Dhanji R. Prasanna) */ public class Slf4jIntegrationTest { @Test public final void testLoggerInjection() { Injector injector = Guice.createInjector(new AbstractModule() { @Override protected void configure() { install(new Slf4jModule()); } }); // simple case AService instance = injector.getInstance(AService.class); assertNotNull(instance.log); assertEquals(AService.class.getName(), instance.log.getName()); // Expect no exception thrown. instance.log.debug("Works!"); // inherited logger TheService inheritedInstance = injector.getInstance(TheService.class); assertNotNull(inheritedInstance.getLog()); assertEquals(TheService.class.getName(), inheritedInstance.getLog().getName()); // Expect no exception thrown. inheritedInstance.getLog().debug("Works!"); } public static class AbstractService { protected Logger log; public Logger getLog() { return log; } } public static class TheService extends AbstractService { } public static class AService { private Logger log; } }