/* * Copyright 2012-2015 the original author or authors. * * Licensed 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.springframework.boot.liquibase; import liquibase.logging.LogLevel; import org.apache.commons.logging.Log; import org.junit.Before; import org.junit.Test; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; /** * Tests for {@link CommonsLoggingLiquibaseLogger}. * * @author Phillip Webb * @author Andy Wilkinson */ public class CommonsLoggingLiquibaseLoggerTests { private Log delegate = mock(Log.class); private CommonsLoggingLiquibaseLogger logger; private Throwable ex = new Exception(); @Before public void setup() { this.logger = new MockCommonsLoggingLiquibaseLogger(); this.logger.setName("mylog"); } @Test public void debug() { this.logger.setLogLevel(LogLevel.DEBUG); given(this.delegate.isDebugEnabled()).willReturn(true); this.logger.debug("debug"); verify(this.delegate).debug("debug"); } @Test public void debugWithException() { this.logger.setLogLevel(LogLevel.DEBUG); given(this.delegate.isDebugEnabled()).willReturn(true); this.logger.debug("debug", this.ex); verify(this.delegate).debug("debug", this.ex); } @Test public void debugWithLoggerOff() { this.logger.setLogLevel(LogLevel.DEBUG); given(this.delegate.isDebugEnabled()).willReturn(false); this.logger.debug("debug"); verify(this.delegate, never()).debug("debug"); } @Test public void info() { this.logger.setLogLevel(LogLevel.INFO); given(this.delegate.isInfoEnabled()).willReturn(true); this.logger.info("info"); verify(this.delegate).info("info"); } @Test public void infoWithException() { this.logger.setLogLevel(LogLevel.INFO); given(this.delegate.isInfoEnabled()).willReturn(true); this.logger.info("info", this.ex); verify(this.delegate).info("info", this.ex); } @Test public void infoWithLoggerOff() { this.logger.setLogLevel(LogLevel.INFO); given(this.delegate.isInfoEnabled()).willReturn(false); this.logger.info("info"); verify(this.delegate, never()).info("info"); } @Test public void warning() { this.logger.setLogLevel(LogLevel.WARNING); given(this.delegate.isWarnEnabled()).willReturn(true); this.logger.warning("warning"); verify(this.delegate).warn("warning"); } @Test public void warningWithException() { this.logger.setLogLevel(LogLevel.WARNING); given(this.delegate.isWarnEnabled()).willReturn(true); this.logger.warning("warning", this.ex); verify(this.delegate).warn("warning", this.ex); } @Test public void warningWithLoggerOff() { this.logger.setLogLevel(LogLevel.WARNING); given(this.delegate.isWarnEnabled()).willReturn(false); this.logger.warning("warning"); verify(this.delegate, never()).warn("warning"); } @Test public void severe() { this.logger.setLogLevel(LogLevel.SEVERE); given(this.delegate.isErrorEnabled()).willReturn(true); this.logger.severe("severe"); verify(this.delegate).error("severe"); } @Test public void severeWithException() { this.logger.setLogLevel(LogLevel.SEVERE); given(this.delegate.isErrorEnabled()).willReturn(true); this.logger.severe("severe", this.ex); verify(this.delegate).error("severe", this.ex); } @Test public void severeWithLoggerOff() { this.logger.setLogLevel(LogLevel.SEVERE); given(this.delegate.isErrorEnabled()).willReturn(false); this.logger.severe("severe"); verify(this.delegate, never()).error("severe"); } private class MockCommonsLoggingLiquibaseLogger extends CommonsLoggingLiquibaseLogger { @Override protected Log createLogger(String name) { return CommonsLoggingLiquibaseLoggerTests.this.delegate; } } }