Package ch.qos.logback.classic.encoder

Source Code of ch.qos.logback.classic.encoder.PatternLayoutEncoderTest

/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2013, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
*   or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package ch.qos.logback.classic.encoder;

import static org.junit.Assert.*;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;

import ch.qos.logback.classic.PatternLayout;
import org.junit.Before;
import org.junit.Test;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.LoggingEvent;

public class PatternLayoutEncoderTest {

  PatternLayoutEncoder ple = new PatternLayoutEncoder();
  LoggerContext context = new LoggerContext();
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  Logger logger = context.getLogger(PatternLayoutEncoderTest.class);
  Charset utf8Charset = Charset.forName("UTF-8");
 
  @Before
  public void setUp() {
    ple.setPattern("%m");
    ple.setContext(context);
  }

  ILoggingEvent makeLoggingEvent(String message) {
    return new LoggingEvent("", logger, Level.DEBUG, message, null, null);
  }

  @Test
  public void smoke() throws IOException {
    init(baos);
    String msg = "hello";
    ILoggingEvent event = makeLoggingEvent(msg);
    ple.doEncode(event);
    ple.close();
    assertEquals(msg, baos.toString());
  }

  void init(ByteArrayOutputStream baos) throws IOException {
    ple.start();
    ((PatternLayout) ple.getLayout()).setOutputPatternAsHeader(false);
    ple.init(baos);
  }

  @Test
  public void charset() throws IOException {
    ple.setCharset(utf8Charset);
    init(baos);
    String msg = "\u03b1";
    ILoggingEvent event = makeLoggingEvent(msg);
    ple.doEncode(event);
    ple.close();
    assertEquals(msg, new String(baos.toByteArray(), utf8Charset.name()));
  }

}
TOP

Related Classes of ch.qos.logback.classic.encoder.PatternLayoutEncoderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.