diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogServiceIntegrationTest.java |
Publish
Diffstat (limited to 'jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogServiceIntegrationTest.java')
-rw-r--r-- | jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogServiceIntegrationTest.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogServiceIntegrationTest.java b/jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogServiceIntegrationTest.java new file mode 100644 index 00000000000..89420464f6f --- /dev/null +++ b/jdisc_core_test/integration_test/src/test/java/com/yahoo/jdisc/core/OsgiLogServiceIntegrationTest.java @@ -0,0 +1,62 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.jdisc.core; + +import com.yahoo.jdisc.test.TestDriver; +import org.junit.Test; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; +import org.osgi.service.log.LogEntry; +import org.osgi.service.log.LogReaderService; + +import java.util.Enumeration; +import java.util.logging.Level; +import java.util.logging.Logger; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + + +/** + * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen Hult</a> + */ +public class OsgiLogServiceIntegrationTest { + + @Test + @SuppressWarnings("unchecked") + public void requireThatAllSupportedLogFrameworksAreConfigured() throws Exception { + // need to explicitly set log level of root logger since integration suite now provides a logger config file, + // which disables that setLevel() call of the OsgiLogManager. + Logger.getLogger("").setLevel(Level.INFO); + + long now = System.currentTimeMillis(); + TestDriver driver = TestDriver.newApplicationBundleInstance("app-h-log.jar", false); + BundleContext ctx = driver.osgiFramework().bundleContext(); + ServiceReference ref = ctx.getServiceReference(LogReaderService.class.getName()); + LogReaderService reader = (LogReaderService)ctx.getService(ref); + Enumeration<LogEntry> log = (Enumeration<LogEntry>)reader.getLog(); + + assertEntry(Level.INFO, "[jdk14] hello world", null, now, log); + assertEntry(Level.INFO, "[slf4j] hello world", null, now, log); + assertEntry(Level.INFO, "[log4j] hello world", null, now, log); + assertEntry(Level.INFO, "[jcl] hello world", null, now, log); + + assertTrue(driver.close()); + } + + private static void assertEntry(Level expectedLevel, String expectedMessage, Throwable expectedException, + long expectedTimeGE, Enumeration<LogEntry> log) + { + assertTrue(log.hasMoreElements()); + LogEntry entry = log.nextElement(); + assertNotNull(entry); + System.err.println("log entry: "+entry.getMessage()+" bundle="+entry.getBundle()); + assertNull(entry.getBundle()); + assertNotNull(entry.getServiceReference()); + assertEquals(OsgiLogHandler.toServiceLevel(expectedLevel), entry.getLevel()); + assertEquals(expectedMessage, entry.getMessage()); + assertEquals(expectedException, entry.getException()); + assertTrue(expectedTimeGE <= entry.getTime()); + } +} |