-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathVerificationTest.java
More file actions
112 lines (94 loc) · 5.28 KB
/
VerificationTest.java
File metadata and controls
112 lines (94 loc) · 5.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// SPDX-FileCopyrightText: 2023 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package sop;
import org.junit.jupiter.api.Test;
import sop.enums.SignatureMode;
import sop.testsuite.assertions.VerificationAssert;
import sop.util.UTCUtil;
import java.text.ParseException;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class VerificationTest {
@Test
public void limitedConstructorTest() throws ParseException {
Date signDate = UTCUtil.parseUTCDate("2022-11-07T15:01:24Z");
String keyFP = "F9E6F53F7201C60A87064EAB0B27F2B0760A1209";
String certFP = "4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B";
Verification verification = new Verification(signDate, keyFP, certFP);
assertEquals("2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B", verification.toString());
assertFalse(verification.getContainsJson());
VerificationAssert.assertThatVerification(verification)
.issuedBy(certFP)
.isBySigningKey(keyFP)
.isCreatedAt(signDate)
.hasMode(null)
.hasDescription(null);
}
@Test
public void limitedParsingTest() throws ParseException {
String string = "2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B";
Verification verification = Verification.fromString(string);
assertEquals(string, verification.toString());
VerificationAssert.assertThatVerification(verification)
.isCreatedAt(UTCUtil.parseUTCDate("2022-11-07T15:01:24Z"))
.issuedBy("F9E6F53F7201C60A87064EAB0B27F2B0760A1209", "4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B")
.hasMode(null)
.hasDescription(null);
}
@Test
public void parsingWithModeTest() throws ParseException {
String string = "2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B mode:text";
Verification verification = Verification.fromString(string);
assertEquals(string, verification.toString());
VerificationAssert.assertThatVerification(verification)
.isCreatedAt(UTCUtil.parseUTCDate("2022-11-07T15:01:24Z"))
.issuedBy("F9E6F53F7201C60A87064EAB0B27F2B0760A1209", "4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B")
.hasMode(SignatureMode.text)
.hasDescription(null);
}
@Test
public void extendedConstructorTest() throws ParseException {
Date signDate = UTCUtil.parseUTCDate("2022-11-07T15:01:24Z");
String keyFP = "F9E6F53F7201C60A87064EAB0B27F2B0760A1209";
String certFP = "4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B";
SignatureMode mode = SignatureMode.binary;
String description = "certificate from dkg.asc";
Verification verification = new Verification(signDate, keyFP, certFP, mode, description);
assertEquals("2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B mode:binary certificate from dkg.asc", verification.toString());
VerificationAssert.assertThatVerification(verification)
.isCreatedAt(signDate)
.issuedBy(keyFP, certFP)
.hasMode(SignatureMode.binary)
.hasDescription(description);
}
@Test
public void extendedParsingTest() throws ParseException {
String string = "2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B mode:binary certificate from dkg.asc";
Verification verification = Verification.fromString(string);
assertEquals(string, verification.toString());
// no mode
string = "2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B certificate from dkg.asc";
verification = Verification.fromString(string);
assertEquals(string, verification.toString());
VerificationAssert.assertThatVerification(verification)
.isCreatedAt(UTCUtil.parseUTCDate("2022-11-07T15:01:24Z"))
.issuedBy("F9E6F53F7201C60A87064EAB0B27F2B0760A1209", "4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B")
.hasMode(null)
.hasDescription("certificate from dkg.asc");
}
@Test
public void missingFingerprintFails() {
String string = "2022-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209";
assertThrows(IllegalArgumentException.class, () -> Verification.fromString(string));
}
@Test
public void malformedTimestampFails() {
String shorter = "'99-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B";
assertThrows(IllegalArgumentException.class, () -> Verification.fromString(shorter));
String longer = "'99-11-07T15:01:24Z F9E6F53F7201C60A87064EAB0B27F2B0760A1209 4E2C78519512C2AE9A8BFE7EB3298EB2FBE5F51B mode:binary certificate from dkg.asc";
assertThrows(IllegalArgumentException.class, () -> Verification.fromString(longer));
}
}