package lux.functions; import static org.junit.Assert.*; import java.io.File; import java.io.StringWriter; import lux.Evaluator; import lux.XdmResultSet; import net.sf.saxon.s9api.XdmEmptySequence; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; import org.apache.log4j.WriterAppender; import org.junit.Before; import org.junit.Test; public class LogTest { private Evaluator eval; private StringWriter buf; @Before public void init () { eval = new Evaluator(); Logger logger = Logger.getLogger("lux.functions"); buf = new StringWriter(); WriterAppender appender = new WriterAppender(); appender.setWriter(buf); appender.setLayout(new SimpleLayout()); logger.addAppender(appender); logger.setLevel(Level.INFO); } @Test public void testLogFunction () { XdmResultSet result = eval.evaluate("(lux:log('info'), lux:log('info2', 'info')," + "lux:log('debug', 'debug'), lux:log('error', 'error'), lux:log('warn', 'warn')," + "lux:log(('fatal', 'error'), 'fatal'), lux:log('trace', 'trace'))"); assertEquals (XdmEmptySequence.getInstance(), result.getXdmValue()); if (File.separatorChar == '\\') { // ie Windows assertEquals ("INFO - info\r\nINFO - info2\r\nERROR - error\r\nWARN - warn\r\nERROR - fatalerror\r\n", buf.getBuffer().toString()); } else { assertEquals ("INFO - info\nINFO - info2\nERROR - error\nWARN - warn\nERROR - fatalerror\n", buf.getBuffer().toString()); } result = eval.evaluate("lux:log('bogus','bobo')"); assertTrue (! result.getErrors().isEmpty()); } } /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */