Skip to content

Commit 31ce2db

Browse files
authored
Merge pull request #2 from BernhardFuchs/6-improve-unit-tests
Upgrade to JUnit 5
2 parents 4e20bd0 + 89821a2 commit 31ce2db

File tree

6 files changed

+135
-105
lines changed

6 files changed

+135
-105
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
*.iml
12
.classpath
23
.project
34
/.settings/

pom.xml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,28 @@
7878
</build>
7979

8080
<dependencies>
81-
8281
<dependency>
83-
<groupId>junit</groupId>
84-
<artifactId>junit</artifactId>
85-
<version>4.10</version>
82+
<groupId>org.junit.jupiter</groupId>
83+
<artifactId>junit-jupiter-engine</artifactId>
84+
<version>5.6.0</version>
85+
<scope>test</scope>
86+
</dependency>
87+
<dependency>
88+
<groupId>org.junit.jupiter</groupId>
89+
<artifactId>junit-jupiter</artifactId>
90+
<version>5.6.0</version>
91+
<scope>test</scope>
92+
</dependency>
93+
<dependency>
94+
<groupId>org.mockito</groupId>
95+
<artifactId>mockito-core</artifactId>
96+
<version>3.2.4</version>
97+
<scope>test</scope>
98+
</dependency>
99+
<dependency>
100+
<groupId>org.mockito</groupId>
101+
<artifactId>mockito-junit-jupiter</artifactId>
102+
<version>3.2.4</version>
86103
<scope>test</scope>
87104
</dependency>
88105
<dependency>
Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
package com.danubetech.verifiablecredentials;
22

3-
import java.util.LinkedHashMap;
4-
53
import com.github.jsonldjava.utils.JsonUtils;
6-
74
import info.weboftrust.ldsignatures.util.CanonicalizationUtil;
8-
import junit.framework.TestCase;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.LinkedHashMap;
8+
9+
import static org.junit.jupiter.api.Assertions.assertEquals;
910

10-
public class CanonicalizationTest extends TestCase {
11+
class CanonicalizationTest {
1112

12-
@SuppressWarnings("unchecked")
13-
public void testCanonicalization() throws Exception {
13+
@Test
14+
void testCanonicalization() throws Exception {
1415

15-
LinkedHashMap<String, Object> jsonLdObject = (LinkedHashMap<String, Object>) JsonUtils.fromInputStream(CanonicalizationTest.class.getResourceAsStream("verifiable-credential.ldp.good.jsonld"));
16-
String canonicalizedDocument = TestUtil.read(CanonicalizationTest.class.getResourceAsStream("verifiable-credential.canonicalized.test"));
16+
LinkedHashMap<String, Object> jsonLdObject = (LinkedHashMap<String, Object>) JsonUtils.fromInputStream(CanonicalizationTest.class.getResourceAsStream("verifiable-credential.ldp.good.jsonld"));
17+
String canonicalizedDocument = TestUtil.read(CanonicalizationTest.class.getResourceAsStream("verifiable-credential.canonicalized.test"));
1718

18-
assertEquals(CanonicalizationUtil.buildCanonicalizedDocument(jsonLdObject), canonicalizedDocument);
19-
}
19+
assertEquals(CanonicalizationUtil.buildCanonicalizedDocument(jsonLdObject), canonicalizedDocument);
20+
}
2021
}
Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,71 @@
11
package com.danubetech.verifiablecredentials;
2-
import java.security.GeneralSecurityException;
3-
import java.util.LinkedHashMap;
42

53
import com.danubetech.verifiablecredentials.jwt.JwtVerifiableCredential;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.security.GeneralSecurityException;
7+
import java.util.LinkedHashMap;
68

7-
import junit.framework.TestCase;
9+
import static org.junit.jupiter.api.Assertions.*;
810

9-
public class JwtTest extends TestCase {
11+
class JwtTest {
1012

11-
public void testSign() throws Exception {
13+
@Test
14+
void testSign() throws Exception {
1215

13-
VerifiableCredential verifiableCredential = new VerifiableCredential();
14-
verifiableCredential.getContext().add("https://trafi.fi/credentials/v1");
15-
verifiableCredential.getType().add("DriversLicenseCredential");
16-
verifiableCredential.setId("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe");
17-
verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD");
18-
verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z"));
19-
verifiableCredential.setExpirationDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z"));
16+
VerifiableCredential verifiableCredential = new VerifiableCredential();
17+
verifiableCredential.getContext().add("https://trafi.fi/credentials/v1");
18+
verifiableCredential.getType().add("DriversLicenseCredential");
19+
verifiableCredential.setId("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe");
20+
verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD");
21+
verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z"));
22+
verifiableCredential.setExpirationDate(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z"));
2023

21-
verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp");
22-
LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject();
23-
LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<String, Object> ();
24-
jsonLdDriversLicenseObject.put("licenseClass", "trucks");
25-
jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject);
24+
verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp");
25+
LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject();
26+
LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<>();
27+
jsonLdDriversLicenseObject.put("licenseClass", "trucks");
28+
jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject);
2629

27-
JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromVerifiableCredential(verifiableCredential);
28-
String jwtString = jwtVerifiableCredential.sign_RSA_RS256(TestUtil.rsaKey);
29-
String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString();
30+
JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromVerifiableCredential(verifiableCredential);
31+
String jwtString = jwtVerifiableCredential.sign_RSA_RS256(TestUtil.rsaKey);
32+
String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString();
3033

31-
assertNotNull(jwtString);
32-
assertNotNull(jwtPayload);
34+
assertNotNull(jwtString);
35+
assertNotNull(jwtPayload);
3336

34-
assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld")).trim(), jwtString.trim());
35-
assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim());
36-
}
37+
assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld")).trim(), jwtString.trim());
38+
assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim());
39+
}
3740

38-
public void testVerify() throws Exception {
41+
@Test
42+
void testVerify() throws Exception {
3943

40-
JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromCompactSerialization(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld")));
41-
if (! jwtVerifiableCredential.verify_RSA_RS256(TestUtil.testRSAPublicKey)) throw new GeneralSecurityException("Invalid signature.");
44+
JwtVerifiableCredential jwtVerifiableCredential = JwtVerifiableCredential.fromCompactSerialization(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.jsonld")));
45+
if (!jwtVerifiableCredential.verify_RSA_RS256(TestUtil.testRSAPublicKey))
46+
throw new GeneralSecurityException("Invalid signature.");
4247

43-
String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString();
44-
String jwtPayloadVerifiableCredential = jwtVerifiableCredential.getPayloadObject().toJsonString();
48+
String jwtPayload = jwtVerifiableCredential.getJwsObject().getPayload().toString();
49+
String jwtPayloadVerifiableCredential = jwtVerifiableCredential.getPayloadObject().toJsonString();
4550

46-
assertNotNull(jwtPayload);
47-
assertNotNull(jwtPayloadVerifiableCredential);
51+
assertNotNull(jwtPayload);
52+
assertNotNull(jwtPayloadVerifiableCredential);
4853

49-
assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim());
54+
assertEquals(TestUtil.read(VerifyTest.class.getResourceAsStream("verifiable-credential.jwt.payload.jsonld")).trim(), jwtPayload.trim());
5055

51-
VerifiableCredential verifiableCredential = jwtVerifiableCredential.toVerifiableCredential();
56+
VerifiableCredential verifiableCredential = jwtVerifiableCredential.toVerifiableCredential();
5257

53-
assertNotNull(verifiableCredential);
58+
assertNotNull(verifiableCredential);
5459

55-
assertTrue(verifiableCredential.getType().contains("DriversLicenseCredential"));
56-
assertEquals("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe", verifiableCredential.getId());
57-
assertEquals("did:sov:1yvXbmgPoUm4dl66D7KhyD", verifiableCredential.getIssuer());
58-
assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z"), verifiableCredential.getIssuanceDate());
59-
assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z"), verifiableCredential.getExpirationDate());
60+
assertTrue(verifiableCredential.getType().contains("DriversLicenseCredential"));
61+
assertEquals("urn:uuid:a87bdfb8-a7df-4bd9-ae0d-d883133538fe", verifiableCredential.getId());
62+
assertEquals("did:sov:1yvXbmgPoUm4dl66D7KhyD", verifiableCredential.getIssuer());
63+
assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-16T18:56:59Z"), verifiableCredential.getIssuanceDate());
64+
assertEquals(VerifiableCredential.DATE_FORMAT.parse("2019-06-17T18:56:59Z"), verifiableCredential.getExpirationDate());
6065

61-
assertEquals("did:sov:21tDAKCERh95uGgKbJNHYp", verifiableCredential.getCredentialSubject());
62-
LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject();
63-
LinkedHashMap<String, Object> jsonLdDriversLicenseObject = (LinkedHashMap<String, Object>) jsonLdCredentialSubject.get("driversLicense");
64-
assertEquals("trucks", jsonLdDriversLicenseObject.get("licenseClass"));
65-
}
66+
assertEquals("did:sov:21tDAKCERh95uGgKbJNHYp", verifiableCredential.getCredentialSubject());
67+
LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject();
68+
LinkedHashMap<String, Object> jsonLdDriversLicenseObject = (LinkedHashMap<String, Object>) jsonLdCredentialSubject.get("driversLicense");
69+
assertEquals("trucks", jsonLdDriversLicenseObject.get("licenseClass"));
70+
}
6671
}
Lines changed: 43 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,49 @@
11
package com.danubetech.verifiablecredentials;
2-
import java.net.URI;
3-
import java.util.LinkedHashMap;
42

53
import info.weboftrust.ldsignatures.LdSignature;
64
import info.weboftrust.ldsignatures.signer.RsaSignature2018LdSigner;
75
import info.weboftrust.ldsignatures.suites.SignatureSuites;
8-
import junit.framework.TestCase;
9-
10-
public class SignTest extends TestCase {
11-
12-
public void testSign() throws Exception {
13-
14-
VerifiableCredential verifiableCredential = new VerifiableCredential();
15-
verifiableCredential.getContext().add("https://trafi.fi/credentials/v1");
16-
verifiableCredential.getType().add("DriversLicenseCredential");
17-
verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD");
18-
verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2017-10-24T05:33:31Z"));
19-
20-
verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp");
21-
LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject();
22-
LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<String, Object> ();
23-
jsonLdDriversLicenseObject.put("licenseClass", "trucks");
24-
jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject);
25-
26-
URI creator = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1");
27-
String created = "2018-01-01T21:19:10Z";
28-
String domain = null;
29-
String nonce = "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e";
30-
31-
RsaSignature2018LdSigner signer = new RsaSignature2018LdSigner(TestUtil.testRSAPrivateKey);
32-
signer.setCreator(creator);
33-
signer.setCreated(created);
34-
signer.setDomain(domain);
35-
signer.setNonce(nonce);
36-
LdSignature ldSignature = signer.sign(verifiableCredential.getJsonLdObject());
37-
38-
assertEquals(SignatureSuites.SIGNATURE_SUITE_RSASIGNATURE2018.getTerm(), ldSignature.getType());
39-
assertEquals(creator, ldSignature.getCreator());
40-
assertEquals(created, ldSignature.getCreated());
41-
assertEquals(domain, ldSignature.getDomain());
42-
assertEquals(nonce, ldSignature.getNonce());
43-
assertEquals("eyJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlLCJhbGciOiJSUzI1NiJ9..O_-LVz0SghpFOlO0xU1d7dk8rXpoQXpd1dBdGuXyjqE72bSZOn_C65M-_ZasNtgt0AxDmkdEFhb1Ji5hZmkuIm9qhMnZDiMMcn6FuMd0eQyYR2OqLOcxOLVdCjgJF4s7M_Mpl7CgZ1w5QnqIEgCp3kzYskvmJrqOsib4a-VXh7xAyA4Lo9edK02wF7t5BrjO6Yz9xaHjB2V9A-Vh3UEXj8kc3cE3M7rMiPlmAiZRdKpl9lVL0ANW1Y0sMPceL3CPoOsjTomfOnGxXylfnhemnVAjpVs5HhG4NlzBf9FT-YPlxfmzVSw1P6epIGSMq4nVXuRXlWD-E_4KcG6teUD3jQ", ldSignature.getSignatureValue());
44-
}
6+
import org.junit.jupiter.api.Test;
7+
8+
import java.net.URI;
9+
import java.util.LinkedHashMap;
10+
11+
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
13+
class SignTest {
14+
15+
@Test
16+
void testSign() throws Exception {
17+
18+
VerifiableCredential verifiableCredential = new VerifiableCredential();
19+
verifiableCredential.getContext().add("https://trafi.fi/credentials/v1");
20+
verifiableCredential.getType().add("DriversLicenseCredential");
21+
verifiableCredential.setIssuer("did:sov:1yvXbmgPoUm4dl66D7KhyD");
22+
verifiableCredential.setIssuanceDate(VerifiableCredential.DATE_FORMAT.parse("2017-10-24T05:33:31Z"));
23+
24+
verifiableCredential.setCredentialSubject("did:sov:21tDAKCERh95uGgKbJNHYp");
25+
LinkedHashMap<String, Object> jsonLdCredentialSubject = verifiableCredential.getJsonLdCredentialSubject();
26+
LinkedHashMap<String, Object> jsonLdDriversLicenseObject = new LinkedHashMap<>();
27+
jsonLdDriversLicenseObject.put("licenseClass", "trucks");
28+
jsonLdCredentialSubject.put("driversLicense", jsonLdDriversLicenseObject);
29+
30+
URI creator = URI.create("did:sov:1yvXbmgPoUm4dl66D7KhyD#keys-1");
31+
String created = "2018-01-01T21:19:10Z";
32+
String domain = null;
33+
String nonce = "c0ae1c8e-c7e7-469f-b252-86e6a0e7387e";
34+
35+
RsaSignature2018LdSigner signer = new RsaSignature2018LdSigner(TestUtil.testRSAPrivateKey);
36+
signer.setCreator(creator);
37+
signer.setCreated(created);
38+
signer.setDomain(domain);
39+
signer.setNonce(nonce);
40+
LdSignature ldSignature = signer.sign(verifiableCredential.getJsonLdObject());
41+
42+
assertEquals(SignatureSuites.SIGNATURE_SUITE_RSASIGNATURE2018.getTerm(), ldSignature.getType());
43+
assertEquals(creator, ldSignature.getCreator());
44+
assertEquals(created, ldSignature.getCreated());
45+
assertEquals(domain, ldSignature.getDomain());
46+
assertEquals(nonce, ldSignature.getNonce());
47+
assertEquals("eyJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlLCJhbGciOiJSUzI1NiJ9..O_-LVz0SghpFOlO0xU1d7dk8rXpoQXpd1dBdGuXyjqE72bSZOn_C65M-_ZasNtgt0AxDmkdEFhb1Ji5hZmkuIm9qhMnZDiMMcn6FuMd0eQyYR2OqLOcxOLVdCjgJF4s7M_Mpl7CgZ1w5QnqIEgCp3kzYskvmJrqOsib4a-VXh7xAyA4Lo9edK02wF7t5BrjO6Yz9xaHjB2V9A-Vh3UEXj8kc3cE3M7rMiPlmAiZRdKpl9lVL0ANW1Y0sMPceL3CPoOsjTomfOnGxXylfnhemnVAjpVs5HhG4NlzBf9FT-YPlxfmzVSw1P6epIGSMq4nVXuRXlWD-E_4KcG6teUD3jQ", ldSignature.getSignatureValue());
48+
}
4549
}

src/test/java/com/danubetech/verifiablecredentials/VerifyTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44
import com.github.jsonldjava.utils.JsonUtils;
55

66
import info.weboftrust.ldsignatures.verifier.RsaSignature2018LdVerifier;
7-
import junit.framework.TestCase;
7+
import org.junit.jupiter.api.Test;
88

9-
public class VerifyTest extends TestCase {
9+
import static org.junit.jupiter.api.Assertions.*;
1010

11-
@SuppressWarnings("unchecked")
12-
public void testVerify() throws Exception {
11+
class VerifyTest {
12+
13+
@Test
14+
void testVerify() throws Exception {
1315

1416
LinkedHashMap<String, Object> jsonLdObject = (LinkedHashMap<String, Object>) JsonUtils.fromInputStream(VerifyTest.class.getResourceAsStream("verifiable-credential.ldp.good.jsonld"));
1517
VerifiableCredential verifiableCredential = VerifiableCredential.fromJsonLdObject(jsonLdObject);
@@ -26,8 +28,8 @@ public void testVerify() throws Exception {
2628
assertEquals("trucks", licenseClass);
2729
}
2830

29-
@SuppressWarnings("unchecked")
30-
public void testBadVerify() throws Exception {
31+
@Test
32+
void testBadVerify() throws Exception {
3133

3234
LinkedHashMap<String, Object> jsonLdObject = (LinkedHashMap<String, Object>) JsonUtils.fromInputStream(VerifyTest.class.getResourceAsStream("verifiable-credential.ldp.bad.jsonld"));
3335
VerifiableCredential verifiableCredential = VerifiableCredential.fromJsonLdObject(jsonLdObject);

0 commit comments

Comments
 (0)