1   package ch.qos.logback.core.sift;
2   
3   import static org.junit.Assert.assertEquals;
4   import static org.junit.Assert.assertFalse;
5   import static org.junit.Assert.assertNull;
6   import static org.junit.Assert.assertTrue;
7   
8   import org.junit.Before;
9   import org.junit.Test;
10  
11  import ch.qos.logback.core.Context;
12  import ch.qos.logback.core.ContextBase;
13  import ch.qos.logback.core.read.ListAppender;
14  
15  public class AppenderTrackerTest {
16  
17    
18    Context context = new ContextBase();
19    AppenderTracker<Object> appenderTracker = new AppenderTrackerImpl<Object>();
20    ListAppender<Object> la = new ListAppender<Object>();
21    
22    @Before
23    public void setUp() {
24      la.setContext(context);
25      la.start();
26    }
27  
28    
29    @Test
30    public void empty0() {
31      long now = 3000;
32      appenderTracker.stopStaleAppenders(now);
33      assertEquals(0, appenderTracker.keyList().size());
34    }
35    
36    @Test
37    public void empty1() {
38      long now = 3000;
39      assertNull(appenderTracker.get("a", now++));
40      now += AppenderTrackerImpl.THRESHOLD+1000;
41      appenderTracker.stopStaleAppenders(now);
42      assertNull(appenderTracker.get("a", now++));
43    }
44    
45    @Test
46    public void smoke() {
47      assertTrue(la.isStarted());
48      long now = 3000;
49      appenderTracker.put("a", la, now);
50      assertEquals(la, appenderTracker.get("a", now++));
51      now += AppenderTrackerImpl.THRESHOLD+1000;
52      appenderTracker.stopStaleAppenders(now);
53      assertFalse(la.isStarted());
54      assertNull(appenderTracker.get("a", now++));
55    }
56    
57    @Test
58    public void scenarioBased() {
59      
60    }
61  }