    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.log4j.net;
    18
    19  import junit.framework.TestCase;
    20  import org.apache.log4j.LogManager;
    21  import org.apache.log4j.Logger;
    22  import org.apache.log4j.spi.LoggingEvent;
    23  import org.apache.log4j.spi.TriggeringEventEvaluator;
    24  import org.apache.log4j.xml.DOMConfigurator;
    25
    26  /**
    27   * Tests for SMTPAppender.
    28   */
    29  public class SMTPAppenderTest extends TestCase {
    30      public SMTPAppenderTest(final String testName) {
    31          super(testName);
    32      }
    33
    34      /**
    35       * Reset configuration after every test.
    36       */
    37    public void tearDown() {
    38        LogManager.resetConfiguration();
    39    }
    40
    41      /**
    42       * Trivial implementation of TriggeringEventEvaluator.
    43       */
    44    public static final class MockTriggeringEventEvaluator implements TriggeringEventEvaluator {
    45          /**
    46           * {@inheritDoc}
    47           */
    48        public boolean isTriggeringEvent(final LoggingEvent event) {
    49            return true;
    50        }
    51    }
    52
    53      /**
    54       * Tests that triggeringPolicy element will set evaluator.
    55       */
    56    public void testTrigger() {
    57        DOMConfigurator.configure("input/xml/smtpAppender1.xml");
    58        SMTPAppender appender = (SMTPAppender) Logger.getRootLogger().getAppender("A1");
    59        TriggeringEventEvaluator evaluator = appender.getEvaluator();
    60        assertTrue(evaluator instanceof MockTriggeringEventEvaluator);
    61    }
    62  }