1 package com.gitlab.pdftk_java;
2 
3 import org.junit.Test;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7 
8 public class CatTest extends BlackBox {
9   @Test
cat()10   public void cat() throws IOException {
11     byte[] expected = slurpBytes("test/files/cat-refs-refsalt.pdf");
12     pdftk("test/files/refs.pdf", "test/files/refsalt.pdf",
13           "cat", "output", "-");
14     assertPdfEqualsAsSVG(expected, systemOut.getLogAsBytes());
15   }
16 
17   @Test
cat_rotate_page_no_op()18   public void cat_rotate_page_no_op() {
19     byte[] expected = getPdf("test/files/blank.pdf", "cat", "output", "-");
20     byte[] actual = getPdf("test/files/blank.pdf", "cat", "1north", "output", "-");
21     assertPdfEqualsAsSVG(expected, actual);
22   }
23 
24   @Test
cat_rotate_range_no_op()25   public void cat_rotate_range_no_op() {
26     byte[] expected = getPdf("test/files/blank.pdf", "cat", "output", "-");
27     byte[] actual = getPdf("test/files/blank.pdf", "cat", "1-1north", "output", "-");
28     assertPdfEqualsAsSVG(expected, actual);
29   }
30 
31   @Test
cat_rotate_page()32   public void cat_rotate_page() {
33     pdftk("test/files/blank.pdf", "cat", "1east", "output", "-");
34   }
35 
36   @Test
cat_rotate_range()37   public void cat_rotate_range() {
38     byte[] expected = getPdf("test/files/blank.pdf", "cat", "1east", "output", "-");
39     byte[] actual = getPdf("test/files/blank.pdf", "cat", "1-1east", "output", "-");
40     assertPdfEqualsAsSVG(expected, actual);
41   }
42 
43   @Test
cat_exclude_range()44   public void cat_exclude_range() {
45     byte[] expected = getPdf("test/files/refs.pdf", "cat", "1-3", "6-8", "output", "-");
46     byte[] actual = getPdf("test/files/refs.pdf", "cat", "~4-5", "output", "-");
47     assertPdfEqualsAsSVG(expected, actual);
48   }
49 
50   @Test
cat_include_exclude_range()51   public void cat_include_exclude_range() {
52     byte[] expected = getPdf("test/files/refs.pdf", "cat", "2-3", "6-7", "output", "-");
53     byte[] actual = getPdf("test/files/refs.pdf", "cat", "2-end~4-5~end", "output", "-");
54     assertPdfEqualsAsSVG(expected, actual);
55   }
56 
57   @Test
cat_even()58   public void cat_even() {
59     byte[] expected = getPdf("test/files/refs.pdf", "cat", "2", "4", "6", "output", "-");
60     byte[] actual = getPdf("test/files/refs.pdf", "cat", "2-7even", "output", "-");
61     assertPdfEqualsAsSVG(expected, actual);
62   }
63 
64   @Test
cat_odd()65   public void cat_odd() {
66     byte[] expected = getPdf("test/files/refs.pdf", "cat", "3", "5", "7", "output", "-");
67     byte[] actual = getPdf("test/files/refs.pdf", "cat", "2-7odd", "output", "-");
68     assertPdfEqualsAsSVG(expected, actual);
69   }
70 
71   @Test
cat_handles()72   public void cat_handles() {
73     byte[] expected = getPdf("test/files/refs.pdf", "test/files/refsalt.pdf", "cat", "output", "-");
74     byte[] actual = getPdf("A=test/files/refs.pdf", "B=test/files/refsalt.pdf", "cat", "B", "A", "output", "-");
75   }
76 
77   @Test
duplicate_stdin()78   public void duplicate_stdin() throws IOException {
79     InputStream stdinMock = new FileInputStream("test/files/blank.pdf");
80     InputStream originalIn = System.in;
81     System.setIn(stdinMock);
82     pdftk("A=-", "cat", "A", "A", "A", "output", "-");
83     System.setIn(originalIn);
84   }
85 };
86