| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache license, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the license for the specific language governing permissions and |
| * limitations under the license. |
| */ |
| package org.apache.logging.slf4j; |
| |
| import org.apache.logging.log4j.Marker; |
| import org.apache.logging.log4j.MarkerManager; |
| import org.junit.After; |
| import org.junit.Assert; |
| import org.junit.Before; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| |
| import static org.junit.Assert.*; |
| |
| /** |
| * |
| */ |
| public class MarkerTest { |
| |
| private static final String CHILD_MAKER_NAME = MarkerTest.class.getSimpleName() + "-TEST"; |
| private static final String PARENT_MARKER_NAME = MarkerTest.class.getSimpleName() + "-PARENT"; |
| private static Log4jMarkerFactory markerFactory; |
| |
| @BeforeClass |
| public static void startup() { |
| markerFactory = ((Log4jLoggerFactory) org.slf4j.LoggerFactory.getILoggerFactory()).getMarkerFactory(); |
| |
| } |
| |
| @Before |
| @After |
| public void clearMarkers() { |
| MarkerManager.clear(); |
| } |
| |
| @Test |
| public void testAddMarker() { |
| final String childMakerName = CHILD_MAKER_NAME + "-AM"; |
| final String parentMarkerName = PARENT_MARKER_NAME + "-AM"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMakerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMarkerName); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMarkerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMakerName); |
| |
| assertTrue("Incorrect Marker class", slf4jMarker instanceof Log4jMarker); |
| assertTrue(String.format("%s (log4jMarker=%s) is not an instance of %s (log4jParent=%s) in Log4j", |
| childMakerName, parentMarkerName, log4jMarker, log4jParent), log4jMarker.isInstanceOf(log4jParent)); |
| assertTrue(String.format("%s (slf4jMarker=%s) is not an instance of %s (log4jParent=%s) in SLF4J", |
| childMakerName, parentMarkerName, slf4jMarker, slf4jParent), slf4jMarker.contains(slf4jParent)); |
| } |
| |
| @Test |
| public void testAddNullMarker() { |
| final String childMarkerName = CHILD_MAKER_NAME + "-ANM"; |
| final String parentMakerName = PARENT_MARKER_NAME + "-ANM"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMakerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMarkerName); |
| final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent); |
| final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker); |
| final org.slf4j.Marker nullMarker = null; |
| try { |
| log4jSlf4jParent.add(nullMarker); |
| fail("Expected " + IllegalArgumentException.class.getName()); |
| } catch (final IllegalArgumentException e) { |
| // expected |
| } |
| try { |
| log4jSlf4jMarker.add(nullMarker); |
| fail("Expected " + IllegalArgumentException.class.getName()); |
| } catch (final IllegalArgumentException e) { |
| // expected |
| } |
| } |
| |
| @Test |
| public void testAddSameMarker() { |
| final String childMarkerName = CHILD_MAKER_NAME + "-ASM"; |
| final String parentMakerName = PARENT_MARKER_NAME + "-ASM"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName); |
| slf4jMarker.add(slf4jParent); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMakerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMarkerName); |
| assertTrue(String.format("%s (log4jMarker=%s) is not an instance of %s (log4jParent=%s) in Log4j", |
| childMarkerName, parentMakerName, log4jMarker, log4jParent), log4jMarker.isInstanceOf(log4jParent)); |
| assertTrue(String.format("%s (slf4jMarker=%s) is not an instance of %s (log4jParent=%s) in SLF4J", |
| childMarkerName, parentMakerName, slf4jMarker, slf4jParent), slf4jMarker.contains(slf4jParent)); |
| } |
| |
| @Test |
| public void testEquals() { |
| final String childMarkerName = CHILD_MAKER_NAME + "-ASM"; |
| final String parentMakerName = PARENT_MARKER_NAME + "-ASM"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName); |
| final org.slf4j.Marker slf4jMarker2 = org.slf4j.MarkerFactory.getMarker(childMarkerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMakerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMarkerName); |
| final Marker log4jMarker2 = MarkerManager.getMarker(childMarkerName); |
| assertEquals(log4jParent, log4jParent); |
| assertEquals(log4jMarker, log4jMarker); |
| assertEquals(log4jMarker, log4jMarker2); |
| assertEquals(slf4jMarker, slf4jMarker2); |
| assertNotEquals(log4jParent, log4jMarker); |
| assertNotEquals(log4jMarker, log4jParent); |
| } |
| |
| @Test |
| public void testContainsNullMarker() { |
| final String childMarkerName = CHILD_MAKER_NAME + "-CM"; |
| final String parentMakerName = PARENT_MARKER_NAME + "-CM"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMakerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMarkerName); |
| final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent); |
| final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker); |
| final org.slf4j.Marker nullMarker = null; |
| try { |
| Assert.assertFalse(log4jSlf4jParent.contains(nullMarker)); |
| fail("Expected " + IllegalArgumentException.class.getName()); |
| } catch (final IllegalArgumentException e) { |
| // expected |
| } |
| try { |
| Assert.assertFalse(log4jSlf4jMarker.contains(nullMarker)); |
| fail("Expected " + IllegalArgumentException.class.getName()); |
| } catch (final IllegalArgumentException e) { |
| // expected |
| } |
| } |
| |
| @Test |
| public void testContainsNullString() { |
| final String childMarkerName = CHILD_MAKER_NAME + "-CS"; |
| final String parentMakerName = PARENT_MARKER_NAME + "-CS"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMakerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMarkerName); |
| final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent); |
| final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker); |
| final String nullStr = null; |
| Assert.assertFalse(log4jSlf4jParent.contains(nullStr)); |
| Assert.assertFalse(log4jSlf4jMarker.contains(nullStr)); |
| } |
| |
| @Test |
| public void testRemoveNullMarker() { |
| final String childMakerName = CHILD_MAKER_NAME + "-CM"; |
| final String parentMakerName = PARENT_MARKER_NAME + "-CM"; |
| final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMakerName); |
| final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName); |
| slf4jMarker.add(slf4jParent); |
| final Marker log4jParent = MarkerManager.getMarker(parentMakerName); |
| final Marker log4jMarker = MarkerManager.getMarker(childMakerName); |
| final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent); |
| final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker); |
| final org.slf4j.Marker nullMarker = null; |
| Assert.assertFalse(log4jSlf4jParent.remove(nullMarker)); |
| Assert.assertFalse(log4jSlf4jMarker.remove(nullMarker)); |
| } |
| |
| } |