1   /**
2    * Logback: the generic, reliable, fast and flexible logging framework.
3    * 
4    * Copyright (C) 2000-2008, QOS.ch
5    * 
6    * This library is free software, you can redistribute it and/or modify it under
7    * the terms of the GNU Lesser General Public License as published by the Free
8    * Software Foundation.
9    */
10  package ch.qos.logback.classic.pattern;
11  
12  import static org.junit.Assert.*;
13  
14  import org.junit.Test;
15  
16  import ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator;
17  
18  public class TargetLengthBasedClassNameAbbreviatorTest  {
19  
20  
21    @Test
22    public void testShortName() {
23      {
24        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(100);
25        String name = "hello";
26        assertEquals(name, abbreviator.abbreviate(name));
27      }
28      {
29        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(100);
30        String name = "hello.world";
31        assertEquals(name, abbreviator.abbreviate(name));
32      }
33    }
34  
35    @Test
36    public void testNoDot() {
37      TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
38      String name = "hello";
39      assertEquals(name, abbreviator.abbreviate(name));
40    }
41  
42    @Test
43    public void testOneDot() {
44      {
45        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
46        String name = "hello.world";
47        assertEquals("h.world", abbreviator.abbreviate(name));
48      }
49  
50      {
51        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
52        String name = "h.world";
53        assertEquals("h.world", abbreviator.abbreviate(name));
54      }
55  
56      {
57        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
58        String name = ".world";
59        assertEquals(".world", abbreviator.abbreviate(name));
60      }
61    }
62  
63    @Test
64    public void testTwoDot() {
65      {
66        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
67        String name = "com.logback.Foobar";
68        assertEquals("c.l.Foobar", abbreviator.abbreviate(name));
69      }
70  
71      {
72        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
73        String name = "c.logback.Foobar";
74        assertEquals("c.l.Foobar", abbreviator.abbreviate(name));
75      }
76  
77      {
78        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
79        String name = "c..Foobar";
80        assertEquals("c..Foobar", abbreviator.abbreviate(name));
81      }
82      {
83        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
84        String name = "..Foobar";
85        assertEquals("..Foobar", abbreviator.abbreviate(name));
86      }
87    }
88    
89    @Test
90    public void test3Dot() {
91      {
92        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
93        String name = "com.logback.xyz.Foobar";
94        assertEquals("c.l.x.Foobar", abbreviator.abbreviate(name));
95      }
96      {
97        TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(13);
98        String name = "com.logback.xyz.Foobar";
99        assertEquals("c.l.x.Foobar", abbreviator.abbreviate(name));
100     }
101     {
102       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(14);
103       String name = "com.logback.xyz.Foobar";
104       assertEquals("c.l.xyz.Foobar", abbreviator.abbreviate(name));
105     }
106     
107     {
108       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(15);
109       String name = "com.logback.alligator.Foobar";
110       assertEquals("c.l.a.Foobar", abbreviator.abbreviate(name));
111     }
112   }
113   @Test
114   public void testXDot() {
115     {
116       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(21);
117       String name = "com.logback.wombat.alligator.Foobar";
118       assertEquals("c.l.w.a.Foobar", abbreviator.abbreviate(name));
119     }
120     
121     {
122       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(22);
123       String name = "com.logback.wombat.alligator.Foobar";
124       assertEquals("c.l.w.alligator.Foobar", abbreviator.abbreviate(name));
125     }
126     
127     {
128       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(1);
129       String name = "com.logback.wombat.alligator.tomato.Foobar";
130       assertEquals("c.l.w.a.t.Foobar", abbreviator.abbreviate(name));
131     }
132     
133     {
134       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(21);
135       String name = "com.logback.wombat.alligator.tomato.Foobar";
136       assertEquals("c.l.w.a.tomato.Foobar", abbreviator.abbreviate(name));
137     }
138     
139     {
140       TargetLengthBasedClassNameAbbreviator abbreviator = new TargetLengthBasedClassNameAbbreviator(29);
141       String name = "com.logback.wombat.alligator.tomato.Foobar";
142       assertEquals("c.l.w.alligator.tomato.Foobar", abbreviator.abbreviate(name));
143     }
144   }
145 }