| /* |
| * 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.log4j; |
| |
| import junit.framework.TestCase; |
| |
| import org.apache.log4j.spi.LoggingEvent; |
| |
| |
| /** |
| * Tests for Layout. |
| * |
| */ |
| public class LayoutTest extends TestCase { |
| /** |
| * Expected content type. |
| */ |
| private final String contentType; |
| |
| /** |
| * Expected value for ignoresThrowable. |
| */ |
| private final boolean ignoresThrowable; |
| |
| /** |
| * Expected value for header. |
| */ |
| private final String header; |
| |
| /** |
| * Expected value for footer. |
| */ |
| private final String footer; |
| |
| /** |
| * Construct a new instance of LayoutTest. |
| * @param testName test name. |
| */ |
| public LayoutTest(final String testName) { |
| super(testName); |
| contentType = "text/plain"; |
| ignoresThrowable = true; |
| header = null; |
| footer = null; |
| } |
| |
| /** |
| * Constructor for use by derived tests. |
| * @param testName name of test. |
| * @param expectedContentType expected value for getContentType(). |
| * @param expectedIgnoresThrowable expected value for ignoresThrowable(). |
| * @param expectedHeader expected value for getHeader(). |
| * @param expectedFooter expected value for getFooter(). |
| */ |
| protected LayoutTest( |
| final String testName, final String expectedContentType, |
| final boolean expectedIgnoresThrowable, final String expectedHeader, |
| final String expectedFooter) { |
| super(testName); |
| contentType = expectedContentType; |
| ignoresThrowable = expectedIgnoresThrowable; |
| header = expectedHeader; |
| footer = expectedFooter; |
| } |
| |
| /** |
| * Tests Layout.LINE_SEP. |
| */ |
| public void testLineSep() { |
| assertEquals(System.getProperty("line.separator"), Layout.LINE_SEP); |
| } |
| |
| /** |
| * Tests Layout.LINE_SEP. |
| */ |
| public void testLineSepLen() { |
| assertEquals(Layout.LINE_SEP.length(), Layout.LINE_SEP_LEN); |
| } |
| |
| /** |
| * Creates layout for test. |
| * @return new instance of Layout. |
| */ |
| protected Layout createLayout() { |
| return new MockLayout(); |
| } |
| |
| /** |
| * Tests getContentType. |
| */ |
| public void testGetContentType() { |
| assertEquals(contentType, createLayout().getContentType()); |
| } |
| |
| /** |
| * Tests ignoresThrowable. |
| */ |
| public void testIgnoresThrowable() { |
| assertEquals(ignoresThrowable, createLayout().ignoresThrowable()); |
| } |
| |
| /** |
| * Tests getHeader. |
| */ |
| public void testGetHeader() { |
| assertEquals(header, createLayout().getHeader()); |
| } |
| |
| /** |
| * Tests getFooter. |
| */ |
| public void testGetFooter() { |
| assertEquals(footer, createLayout().getFooter()); |
| } |
| |
| /** |
| * Tests format. |
| * @throws Exception derived tests, particular XMLLayoutTest, may throw exceptions. |
| */ |
| public void testFormat() throws Exception { |
| Logger logger = Logger.getLogger("org.apache.log4j.LayoutTest"); |
| LoggingEvent event = |
| new LoggingEvent( |
| "org.apache.log4j.Logger", logger, Level.INFO, "Hello, World", null); |
| String result = createLayout().format(event); |
| assertEquals("Mock", result); |
| } |
| |
| /** |
| * Concrete Layout class for tests. |
| */ |
| private static final class MockLayout extends Layout { |
| /** |
| * @{inheritDoc} |
| */ |
| public String format(final LoggingEvent event) { |
| return "Mock"; |
| } |
| |
| /** |
| * @{inheritDoc} |
| */ |
| public void activateOptions() { |
| } |
| |
| /** |
| * @{inheritDoc} |
| */ |
| public boolean ignoresThrowable() { |
| return true; |
| } |
| } |
| } |