1   package ch.qos.logback.access.pattern;
2   
3   import static org.junit.Assert.assertEquals;
4   
5   import java.util.ArrayList;
6   import java.util.List;
7   
8   import javax.servlet.http.Cookie;
9   
10  import org.junit.After;
11  import org.junit.Before;
12  import org.junit.Test;
13  
14  import ch.qos.logback.access.dummy.DummyRequest;
15  import ch.qos.logback.access.dummy.DummyResponse;
16  import ch.qos.logback.access.dummy.DummyServerAdapter;
17  import ch.qos.logback.access.spi.AccessEvent;
18  
19  public class ConverterTest  {
20  
21    AccessEvent event;
22    DummyRequest request;
23    DummyResponse response;
24  
25    @Before
26    public void setUp() throws Exception {
27      request = new DummyRequest();
28      response = new DummyResponse();
29      event = createEvent();
30    }
31  
32    @After
33    public void tearDown() throws Exception {
34      event = null;
35      request = null;
36      response = null;
37    }
38  
39    @Test
40    public void testContentLengthConverter() {
41      ContentLengthConverter converter = new ContentLengthConverter();
42      converter.start();
43      String result = converter.convert(event);
44      assertEquals(Long.toString(event.getServerAdapter().getContentLength()), result);
45    }
46  
47    @Test
48    public void testDateConverter() {
49      DateConverter converter = new DateConverter();
50      converter.start();
51      String result = converter.convert(event);
52      assertEquals(converter.simpleFormat.format(event.getTimeStamp()), result);
53    }
54  
55    public void testLineLocalPortConverter() {
56      LocalPortConverter converter = new LocalPortConverter();
57      converter.start();
58      String result = converter.convert(event);
59      assertEquals(Integer.toString(request.getLocalPort()), result);
60    }
61  
62    @Test
63    public void testRemoteHostConverter() {
64      RemoteHostConverter converter = new RemoteHostConverter();
65      converter.start();
66      String result = converter.convert(event);
67      assertEquals(request.getRemoteHost(), result);
68    }
69  
70    @Test
71    public void testRemoteIPAddressConverter() {
72      RemoteIPAddressConverter converter = new RemoteIPAddressConverter();
73      converter.start();
74      String result = converter.convert(event);
75      assertEquals(request.getRemoteAddr(), result);
76    }
77  
78    @Test
79    public void testRemoteUserConverter() {
80      RemoteUserConverter converter = new RemoteUserConverter();
81      converter.start();
82      String result = converter.convert(event);
83      assertEquals(request.getRemoteUser(), result);
84    }
85  
86    @Test
87    public void testRequestAttributeConverter() {
88      RequestAttributeConverter converter = new RequestAttributeConverter();
89      List<String> optionList = new ArrayList<String>();
90      optionList.add("testKey");
91      converter.setOptionList(optionList);
92      converter.start();
93      String result = converter.convert(event);
94      assertEquals(request.getAttribute("testKey"), result);
95    }
96  
97    @Test
98    public void testRequestCookieConverter() {
99      RequestCookieConverter converter = new RequestCookieConverter();
100     List<String> optionList = new ArrayList<String>();
101     optionList.add("testName");
102     converter.setOptionList(optionList);
103     converter.start();
104     String result = converter.convert(event);
105     Cookie cookie = request.getCookies()[0];
106     assertEquals(cookie.getValue(), result);
107   }
108 
109   @Test
110   public void testRequestHeaderConverter() {
111     RequestHeaderConverter converter = new RequestHeaderConverter();
112     List<String> optionList = new ArrayList<String>();
113     optionList.add("headerName1");
114     converter.setOptionList(optionList);
115     converter.start();
116     String result = converter.convert(event);
117     assertEquals(request.getHeader("headerName1"), result);
118   }
119 
120   @Test
121   public void testRequestMethodConverter() {
122     RequestMethodConverter converter = new RequestMethodConverter();
123     converter.start();
124     String result = converter.convert(event);
125     assertEquals(request.getMethod(), result);
126   }
127 
128   @Test
129   public void testRequestProtocolConverter() {
130     RequestProtocolConverter converter = new RequestProtocolConverter();
131     converter.start();
132     String result = converter.convert(event);
133     assertEquals(request.getProtocol(), result);
134   }
135 
136   @Test
137   public void testRequestURIConverter() {
138     RequestURIConverter converter = new RequestURIConverter();
139     converter.start();
140     String result = converter.convert(event);
141     assertEquals(request.getRequestURI(), result);
142   }
143 
144   @Test
145   public void testRequestURLConverter() {
146     RequestURLConverter converter = new RequestURLConverter();
147     converter.start();
148     String result = converter.convert(event);
149     String expected = request.getMethod() + " " + request.getRequestURI() + " "
150         + request.getProtocol();
151     assertEquals(expected, result);
152   }
153 
154   @Test
155   public void testResponseHeaderConverter() {
156      ResponseHeaderConverter converter = new ResponseHeaderConverter();
157      List<String> optionList = new ArrayList<String>();
158      optionList.add("headerName1");
159      converter.setOptionList(optionList);
160      converter.start();
161      String result = converter.convert(event);
162      assertEquals(request.getHeader("headerName1"), result);
163   }
164 
165   @Test
166   public void testServerNameConverter() {
167     ServerNameConverter converter = new ServerNameConverter();
168     converter.start();
169     String result = converter.convert(event);
170     assertEquals(request.getServerName(), result);
171   }
172   
173   @Test
174   public void testStatusCodeConverter() {
175     StatusCodeConverter converter = new StatusCodeConverter();
176     converter.start();
177     String result = converter.convert(event);
178     assertEquals(Integer.toString(event.getServerAdapter().getStatusCode()), result);
179   }
180 
181   private AccessEvent createEvent() {
182     DummyServerAdapter dummyAdapter = new DummyServerAdapter(request, response);
183     AccessEvent ae = new AccessEvent(request, response, dummyAdapter);
184     return ae;
185   }
186 
187 }