1   package ch.qos.logback.core;
2   
3   import static ch.qos.logback.core.BasicStatusManager.MAX_HEADER_COUNT;
4   import static ch.qos.logback.core.BasicStatusManager.TAIL_SIZE;
5   import static org.junit.Assert.assertEquals;
6   import static org.junit.Assert.assertNotNull;
7   
8   import java.util.ArrayList;
9   import java.util.List;
10  
11  import org.junit.Test;
12  
13  import ch.qos.logback.core.status.ErrorStatus;
14  import ch.qos.logback.core.status.Status;
15  
16  
17  public class BasicStatusManagerTest {
18  
19    
20    BasicStatusManager bsm = new BasicStatusManager();
21    
22    @Test
23    public void smoke() {
24      bsm.add(new ErrorStatus("hello", this));
25      assertEquals(Status.ERROR, bsm.getLevel());
26      
27      List<Status> statusList = bsm.getCopyOfStatusList();
28      assertNotNull(statusList);
29      assertEquals(1, statusList.size());
30      assertEquals("hello", statusList.get(0).getMessage());
31    }
32    
33    @Test
34    public void many() {
35      int margin = 300;
36      int len = MAX_HEADER_COUNT+TAIL_SIZE+margin;
37      for(int i = 0; i < len; i++) {
38        bsm.add(new ErrorStatus(""+i, this));
39      }
40      
41      List<Status> statusList = bsm.getCopyOfStatusList();
42      assertNotNull(statusList);
43      assertEquals(MAX_HEADER_COUNT+TAIL_SIZE, statusList.size());
44      List<Status> witness = new ArrayList<Status>();
45      for(int i = 0; i < MAX_HEADER_COUNT; i++) {
46        witness.add(new ErrorStatus(""+i, this));
47      }
48      for(int i = 0; i < TAIL_SIZE; i++) {
49        witness.add(new ErrorStatus(""+(MAX_HEADER_COUNT+margin+i), this));
50      }
51      assertEquals(witness, statusList);
52    }
53  }