package eu.europa.esig.dss.pades; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Set; import org.junit.Before; import org.junit.Test; import eu.europa.esig.dss.pdf.PdfDssDict; import eu.europa.esig.dss.pdf.PdfSignatureOrDocTimestampInfo; import eu.europa.esig.dss.pdf.PdfSignatureOrDocTimestampInfoComparator; public class PdfSignatureOrDocTimestampInfoComparatorTest { private MockPdfSignature mock0; private MockPdfSignature mock1; private MockPdfSignature mock2; @Before public void init() { /* * [0, 91747, 124517, 723] * [0, 126092, 158862, 626] * [0, 160367, 193137, 642] */ mock0 = new MockPdfSignature(new int[] { 0, 91747, 124517, 723 }); mock1 = new MockPdfSignature(new int[] { 0, 126092, 158862, 626 }); mock2 = new MockPdfSignature(new int[] { 0, 160367, 193137, 642 }); } @Test public void test1() { List<PdfSignatureOrDocTimestampInfo> listToSort = new ArrayList<PdfSignatureOrDocTimestampInfo>(); listToSort.add(mock0); listToSort.add(mock1); listToSort.add(mock2); Collections.sort(listToSort, new PdfSignatureOrDocTimestampInfoComparator()); assertEquals(mock0, listToSort.get(0)); assertEquals(mock1, listToSort.get(1)); assertEquals(mock2, listToSort.get(2)); } @Test public void test2() { List<PdfSignatureOrDocTimestampInfo> listToSort = new ArrayList<PdfSignatureOrDocTimestampInfo>(); listToSort.add(mock2); listToSort.add(mock1); listToSort.add(mock0); Collections.sort(listToSort, new PdfSignatureOrDocTimestampInfoComparator()); assertEquals(mock0, listToSort.get(0)); assertEquals(mock1, listToSort.get(1)); assertEquals(mock2, listToSort.get(2)); } @Test public void test3() { List<PdfSignatureOrDocTimestampInfo> listToSort = new ArrayList<PdfSignatureOrDocTimestampInfo>(); listToSort.add(mock1); listToSort.add(mock2); listToSort.add(mock0); Collections.sort(listToSort, new PdfSignatureOrDocTimestampInfoComparator()); assertEquals(mock0, listToSort.get(0)); assertEquals(mock1, listToSort.get(1)); assertEquals(mock2, listToSort.get(2)); } private class MockPdfSignature implements PdfSignatureOrDocTimestampInfo { private int[] byteRange; MockPdfSignature(int[] byteRange) { this.byteRange = byteRange; } @Override public int[] getSignatureByteRange() { return byteRange; } @Override public void checkIntegrity() { } @Override public String getLocation() { return null; } @Override public String getContactInfo() { return null; } @Override public String getReason() { return null; } @Override public String getSubFilter() { return null; } @Override public Date getSigningDate() { return null; } @Override public byte[] getSignedDocumentBytes() { return null; } @Override public byte[] getOriginalBytes() { return null; } @Override public PdfDssDict getDssDictionary() { return null; } @Override public String uniqueId() { return null; } @Override public void addOuterSignature(PdfSignatureOrDocTimestampInfo signatureInfo) { } @Override public Set<PdfSignatureOrDocTimestampInfo> getOuterSignatures() { return null; } @Override public boolean isTimestamp() { return false; } @Override public byte[] getContent() { return null; } } }