| /* |
| * Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Jaro Kuruc - Initial API and implementation |
| // Tomas Kraus - EclipseLink 2.7 integration |
| package org.eclipse.persistence.testing.tests.logging.slf4j; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import org.eclipse.persistence.internal.sessions.AbstractSession; |
| import org.eclipse.persistence.logging.AbstractSessionLog; |
| import org.eclipse.persistence.logging.slf4j.SLF4JLogger; |
| import org.eclipse.persistence.sessions.Session; |
| import org.eclipse.persistence.testing.framework.junit.LogTestExecution; |
| import org.eclipse.persistence.testing.tests.junit.logging.LogLevelHelper; |
| import org.eclipse.persistence.testing.tests.logging.LogTestSession; |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Rule; |
| import org.junit.Test; |
| import org.slf4j.LoggerFactory; |
| |
| import ch.qos.logback.classic.LoggerContext; |
| |
| /** |
| * Unit tests for EclipseLink Logger bridge over SLF4J. |
| */ |
| public class SLF4JLoggerTest { |
| |
| /** Log the test being currently executed. */ |
| @Rule public LogTestExecution logExecution = new LogTestExecution(); |
| |
| /** Current EclipseLink session. */ |
| protected Session session; |
| |
| /** Logback logger context. */ |
| protected LoggerContext loggerContext; |
| |
| /** |
| * Creates an instance of jUnit tests. |
| */ |
| public SLF4JLoggerTest() { |
| } |
| |
| /** |
| * Setup unit test. |
| */ |
| @Before |
| public void setup() { |
| session = new LogTestSession(); |
| session.setName(""); |
| loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); |
| loggerContext.reset(); |
| } |
| |
| /** |
| * Clean this test suite. |
| */ |
| @After |
| public void reset() { |
| session = null; |
| loggerContext = null; |
| } |
| |
| /** |
| * Test {@code SLF4JLogger.getLevel()} method. |
| */ |
| @Test |
| public void testGetLevel() { |
| final int configuredDefaultLevel = AbstractSessionLog.getDefaultLoggingLevel(); |
| final SLF4JLogger logger = new SLF4JLogger(); |
| final SLF4JLoggerHelper helper = new SLF4JLoggerHelper((AbstractSession)session, loggerContext, logger); |
| logger.setSession(session); |
| final int defaultLevel = logger.getLevel(); |
| final String defaultLevelString = LogLevelHelper.logIdToName(defaultLevel); |
| assertEquals("SLF4J logging level " + defaultLevelString + " did not match configured level " |
| + configuredDefaultLevel, configuredDefaultLevel, defaultLevel); |
| helper.testCategoryDefaultLevels(logger); |
| } |
| |
| /** |
| * Test {@code SLF4JLogger.log(SessionLogEntry)} method with regular {@link String} message. |
| */ |
| @Test |
| public void testLogMessage() { |
| final SLF4JLogger logger = new SLF4JLogger(); |
| final SLF4JLoggerHelper helper = new SLF4JLoggerHelper( |
| (AbstractSession)session, loggerContext, logger); |
| logger.setSession(session); |
| helper.testLogMessage(); |
| } |
| |
| /** |
| * Test {@code SLF4JLogger.log(SessionLogEntry)} method with {@link Throwable} and stack trace logging turned off. |
| */ |
| @Test |
| public void testLogExceptionWithoutStackTrace() { |
| final SLF4JLogger logger = new SLF4JLogger(); |
| final SLF4JLoggerHelper helper = new SLF4JLoggerHelper( |
| (AbstractSession)session, loggerContext, logger); |
| logger.setSession(session); |
| logger.setShouldLogExceptionStackTrace(false); |
| helper.testLogExceptionWithoutStackTrace(); |
| } |
| |
| /** |
| * Test {@code SLF4JLogger.log(SessionLogEntry)} method with {@link Throwable} and stack trace logging turned on. |
| */ |
| @Test |
| public void testLogExceptionStackTrace() { |
| final SLF4JLogger logger = new SLF4JLogger(); |
| final SLF4JLoggerHelper helper = new SLF4JLoggerHelper( |
| (AbstractSession)session, loggerContext, logger); |
| logger.setSession(session); |
| logger.setShouldLogExceptionStackTrace(true); |
| helper.testLogExceptionStackTrace(); |
| } |
| |
| } |