    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
    18  package org.apache.log4j.pattern;
    19
    20  import junit.framework.TestCase;
    21
    22
    23  /**
    24   * Tests for FormattingInfo.
    25   *
    26   * @author Curt Arnold
    27   *
    28   */
    29  public class FormattingInfoTest extends TestCase {
    30    /**
    31     * Create a new instance.
    32     *
    33     * @param name test name
    34     */
    35    public FormattingInfoTest(final String name) {
    36      super(name);
    37    }
    38
    39    /**
    40     * Check that getDefault does not return null.
    41     *
    42     */
    43    public void testGetDefault() {
    44      FormattingInfo field = FormattingInfo.getDefault();
    45      assertNotNull(field);
    46      assertEquals(0, field.getMinLength());
    47      assertEquals(Integer.MAX_VALUE, field.getMaxLength());
    48      assertEquals(false, field.isLeftAligned());
    49    }
    50
    51    /**
    52     * Check constructor
    53     *
    54     */
    55    public void testConstructor() {
    56        FormattingInfo field = new FormattingInfo(true, 3, 6);
    57        assertNotNull(field);
    58        assertEquals(3, field.getMinLength());
    59        assertEquals(6, field.getMaxLength());
    60        assertEquals(true, field.isLeftAligned());
    61    }
    62
    63    /**
    64     * Field exceeds maximum width
    65     */
    66    public void testTruncate() {
    67        StringBuffer buf = new StringBuffer("foobar");
    68        FormattingInfo field = new FormattingInfo(true, 0, 3);
    69        field.format(2, buf);
    70        assertEquals("fobar", buf.toString());
    71    }
    72
    73      /**
    74       * Add padding to left since field is not minimum width.
    75       */
    76      public void testPadLeft() {
    77          StringBuffer buf = new StringBuffer("foobar");
    78          FormattingInfo field = new FormattingInfo(false, 5, 10);
    79          field.format(2, buf);
    80          assertEquals("fo obar", buf.toString());
    81      }
    82
    83      /**
    84       * Add padding to right since field is not minimum width.
    85       */
    86      public void testPadRight() {
    87          StringBuffer buf = new StringBuffer("foobar");
    88          FormattingInfo field = new FormattingInfo(true, 5, 10);
    89          field.format(2, buf);
    90          assertEquals("foobar ", buf.toString());
    91      }
    92
    93  }