package net.bytebuddy.build.gradle; import net.bytebuddy.test.utility.MockitoRule; import net.bytebuddy.test.utility.ObjectPropertyAssertion; import org.gradle.api.Project; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestRule; import org.mockito.Mock; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import static org.mockito.Mockito.*; public class ByteBuddyLogHandlerTest { private static final String FOO = "foo"; @Rule public TestRule mockitoRule = new MockitoRule(this); @Mock private Project project; @Mock private org.gradle.api.logging.Logger logger; @Before public void setUp() throws Exception { when(project.getLogger()).thenReturn(logger); } @Test public void testLogPublishNoDebug() throws Exception { ByteBuddyLogHandler byteBuddyLogHandler = new ByteBuddyLogHandler(project, mock(Logger.class), false); LogRecord logRecord = new LogRecord(Level.INFO, FOO); byteBuddyLogHandler.publish(logRecord); verify(logger).isDebugEnabled(); verifyNoMoreInteractions(logger); } @Test public void testLogPublishDebug() throws Exception { ByteBuddyLogHandler byteBuddyLogHandler = new ByteBuddyLogHandler(project, mock(Logger.class), false); LogRecord logRecord = new LogRecord(Level.INFO, FOO); when(logger.isDebugEnabled()).thenReturn(true); byteBuddyLogHandler.publish(logRecord); verify(logger).isDebugEnabled(); verify(logger).debug(byteBuddyLogHandler.getFormatter().format(logRecord)); verifyNoMoreInteractions(logger); } @Test public void testFlush() throws Exception { new ByteBuddyLogHandler(project, mock(Logger.class), false).flush(); } @Test public void testClose() throws Exception { new ByteBuddyLogHandler(project, mock(Logger.class), false).close(); } @Test public void testInitialization() throws Exception { ByteBuddyLogHandler.initialize(project).reset(); } @Test public void testObjectProperties() throws Exception { ObjectPropertyAssertion.of(ByteBuddyLogHandler.class).apply(); } }