1   package ch.qos.logback.access.net;
2   
3   import static org.junit.Assert.*;
4   
5   import org.junit.After;
6   import org.junit.Before;
7   import org.junit.Test;
8   
9   import ch.qos.logback.access.dummy.DummyRequest;
10  import ch.qos.logback.access.dummy.DummyResponse;
11  import ch.qos.logback.access.dummy.DummyServerAdapter;
12  import ch.qos.logback.access.spi.AccessEvent;
13  import ch.qos.logback.core.Context;
14  import ch.qos.logback.core.ContextBase;
15  import ch.qos.logback.core.boolex.EvaluationException;
16  
17  public class URLEvaluatorTest  {
18  
19    final String expectedURL1 = "testUrl1";
20    final String expectedURL2 = "testUrl2";
21    Context context = new ContextBase();
22    URLEvaluator evaluator;    
23    DummyRequest request;
24    DummyResponse response;
25    DummyServerAdapter serverAdapter;
26    
27    @Before
28    public void setUp() throws Exception {
29      evaluator = new URLEvaluator();
30      evaluator.setContext(context);
31      evaluator.addURL(expectedURL1);
32      evaluator.start();
33      request = new DummyRequest();
34      response = new DummyResponse();
35      serverAdapter = new DummyServerAdapter(request, response);
36    }
37    
38    @After
39    public void tearDown() throws Exception {
40      evaluator.stop();
41      evaluator = null;
42      request = null;
43      response = null;
44      serverAdapter = null;
45      context = null;
46    }
47    
48    @Test
49    public void testExpectFalse() throws EvaluationException {
50      request.setRequestUri("test");
51      AccessEvent ae = new AccessEvent(request, response, serverAdapter);
52      assertFalse(evaluator.evaluate(ae));
53    }
54    
55    @Test
56    public void testExpectTrue() throws EvaluationException {
57      request.setRequestUri(expectedURL1);   
58      AccessEvent ae = new AccessEvent(request, response, serverAdapter);
59      assertTrue(evaluator.evaluate(ae));    
60    }
61    
62    @Test
63    public void testExpectTrueMultiple() throws EvaluationException {
64      evaluator.addURL(expectedURL2);
65      request.setRequestUri(expectedURL2);    
66      AccessEvent ae = new AccessEvent(request, response, serverAdapter);
67      assertTrue(evaluator.evaluate(ae));    
68    }
69  }