# HG changeset patch # User Jaroslav Tulach # Date 1213430072 -7200 # Node ID 907f5d8e343c320ae9d520e8cbd615a840ec5c9e # Parent a773f1bc5ba121e3a2f0e8195199378e6688b17c Advanced usage of logging diff -r a773f1bc5ba1 -r 907f5d8e343c samples/deadlock/src/org/apidesign/deadlock/logs/OverrideMePlease.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/deadlock/src/org/apidesign/deadlock/logs/OverrideMePlease.java Sat Jun 14 09:54:32 2008 +0200 @@ -0,0 +1,19 @@ +package org.apidesign.deadlock.logs; + +import java.util.logging.Logger; + + +public abstract class OverrideMePlease { + boolean whatIsDefault; + + public OverrideMePlease() { + whatIsDefault = overideMePlease(); + } + // BEGIN: logs.override + protected boolean overideMePlease() { + Logger.getLogger(OverrideMePlease.class.getName()).warning("subclasses are supposed to override overideMePlease() method!"); + // some default + return true; + } + // END: logs.override +} diff -r a773f1bc5ba1 -r 907f5d8e343c samples/deadlock/test/org/apidesign/deadlock/logs/OverrideMePleaseTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/deadlock/test/org/apidesign/deadlock/logs/OverrideMePleaseTest.java Sat Jun 14 09:54:32 2008 +0200 @@ -0,0 +1,43 @@ +package org.apidesign.deadlock.logs; + +import java.util.logging.Level; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.netbeans.junit.Log; +import static org.junit.Assert.*; + +public class OverrideMePleaseTest { + + public OverrideMePleaseTest() { + } + + @Test + public void overideMePleaseNotOverriden() { + CharSequence log = Log.enable("org.apidesign", Level.WARNING); + OverrideMePlease instance = new OverrideMePlease() { + }; + if (log.length() == 0) { + fail("There should be a warning: " + log); + } + } + + @Test + public void overideMePleaseOverriden() { + // BEGIN: logs.override.test + CharSequence log = Log.enable("org.apidesign", Level.WARNING); + OverrideMePlease instance = new OverrideMePlease() { + @Override + protected boolean overideMePlease() { + return true; + } + }; + if (log.length() != 0) { + fail("There should be no warning: " + log); + } + // END: logs.override.test + } + +} \ No newline at end of file diff -r a773f1bc5ba1 -r 907f5d8e343c samples/deadlock/test/org/apidesign/deadlock/startuplock/CLIHandlerBlockingTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/deadlock/test/org/apidesign/deadlock/startuplock/CLIHandlerBlockingTest.java Sat Jun 14 09:54:32 2008 +0200 @@ -0,0 +1,56 @@ +package org.apidesign.deadlock.startuplock; + +import java.io.File; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import static org.junit.Assert.*; + +// BEGIN: test.capture.logs +public class CLIHandlerBlockingTest { + + public CLIHandlerBlockingTest() { + } + + @BeforeClass + public static void initHandler() { + Logger.getLogger("").addHandler(new H()); + Logger.getLogger("").setLevel(Level.ALL); + } + + @Before + public void setUp() { + H.sb.setLength(0); + } + + @Test + public void start() throws Exception { + File lockFile = File.createTempFile("pref", ".tmp"); + int result = CLIHandlerBlocking.start(lockFile); + assertEquals("Show a failure" + H.sb, -10, result); + } + + private static final class H extends Handler { + static StringBuffer sb = new StringBuffer(); + + @Override + public void publish(LogRecord record) { + sb.append(record.getMessage()).append('\n'); + } + + @Override + public void flush() { + } + + @Override + public void close() throws SecurityException { + } + } // end of H +// END: test.capture.logs +} \ No newline at end of file diff -r a773f1bc5ba1 -r 907f5d8e343c samples/deadlock/test/org/apidesign/deadlock/startuplock/CLIHandlerBlockingWithNbTestCaseTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/deadlock/test/org/apidesign/deadlock/startuplock/CLIHandlerBlockingWithNbTestCaseTest.java Sat Jun 14 09:54:32 2008 +0200 @@ -0,0 +1,35 @@ +package org.apidesign.deadlock.startuplock; + +import java.io.File; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.netbeans.junit.NbTestCase; +import static org.junit.Assert.*; + +// BEGIN: test.capture.logs.nbjunit +public class CLIHandlerBlockingWithNbTestCaseTest extends NbTestCase { + + public CLIHandlerBlockingWithNbTestCaseTest(String s) { + super(s); + } + + @Override + protected Level logLevel() { + return Level.ALL; + } + + + public void testStart() throws Exception { + File lockFile = File.createTempFile("pref", ".tmp"); + int result = CLIHandlerBlocking.start(lockFile); + assertEquals("Show a failure", -10, result); + } +} +// END: test.capture.logs.nbjunit