1   package ch.qos.logback.core.rolling.helper;
2   
3   
4   import java.io.File;
5   import java.time.Instant;
6   import java.util.Date;
7   
8   import org.junit.jupiter.api.Test;
9   
10  import ch.qos.logback.core.Context;
11  import ch.qos.logback.core.ContextBase;
12  
13  import static org.junit.jupiter.api.Assertions.assertArrayEquals;
14  
15  public class SizeAndTimeBasedArchiveRemoverTest {
16  
17      Context context = new ContextBase();
18  
19      @Test
20      public void smoke() {
21          FileNamePattern fileNamePattern = new FileNamePattern("smoke-%d-%i.gz", context);
22          SizeAndTimeBasedArchiveRemover remover = new SizeAndTimeBasedArchiveRemover(fileNamePattern, null);
23          File[] fileArray = new File[2];
24          File[] expected = new File[2];
25  
26          fileArray[0] = expected[1] = new File("/tmp/smoke-1970-01-01-0.gz");
27          fileArray[1] = expected[0] = new File("/tmp/smoke-1970-01-01-1.gz");
28  
29          remover.descendingSort(fileArray, Instant.ofEpochMilli(0));
30  
31          assertArrayEquals(expected, fileArray);
32      }
33  
34      @Test
35      public void badFilenames() {
36          FileNamePattern fileNamePattern = new FileNamePattern("smoke-%d-%i.gz", context);
37          SizeAndTimeBasedArchiveRemover remover = new SizeAndTimeBasedArchiveRemover(fileNamePattern, null);
38          File[] fileArray = new File[2];
39          File[] expected = new File[2];
40  
41          fileArray[0] = expected[0] = new File("/tmp/smoke-1970-01-01-b.gz");
42          fileArray[1] = expected[1] = new File("/tmp/smoke-1970-01-01-c.gz");
43  
44          remover.descendingSort(fileArray, Instant.ofEpochMilli(0));
45  
46          assertArrayEquals(expected, fileArray);
47      }
48  }