Skip to content

Commit f34f170

Browse files
committed
Additional tests
1 parent 7647787 commit f34f170

File tree

5 files changed

+109
-4
lines changed

5 files changed

+109
-4
lines changed

access-grant/src/main/java/com/inrupt/client/accessgrant/AccessGrantClient.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public class AccessGrantClient {
115115
private static final String SOLID_ACCESS_GRANT = "SolidAccessGrant";
116116
private static final String SOLID_ACCESS_REQUEST = "SolidAccessRequest";
117117
private static final String SOLID_ACCESS_DENIAL = "SolidAccessDenial";
118+
private static final String VERIFIABLE_PRESENTATION = "VerifiablePresentation";
118119
private static final URI FQ_ACCESS_GRANT = URI.create(SOLID_VC_NAMESPACE + SOLID_ACCESS_GRANT);
119120
private static final URI FQ_ACCESS_REQUEST = URI.create(SOLID_VC_NAMESPACE + SOLID_ACCESS_REQUEST);
120121
private static final URI FQ_ACCESS_DENIAL = URI.create(SOLID_VC_NAMESPACE + SOLID_ACCESS_DENIAL);
@@ -375,7 +376,8 @@ public <T extends AccessCredential> CompletionStage<CredentialResult<T>> query(f
375376
LOGGER.debug("Query endpoint not supported. Falling back to derive endpoint.");
376377
return query(filter.getResource().orElse(null), filter.getFromAgent().orElse(null),
377378
filter.getToAgent().orElse(null),
378-
filter.getPurpose().map(Collections::singleton).orElseGet(Collections::emptySet), null, clazz)
379+
filter.getPurpose().map(Collections::singleton).orElseGet(Collections::emptySet),
380+
Collections.emptySet(), clazz)
379381
.thenApply(results -> processResults(results, filter));
380382
}
381383
final Request req = Request.newBuilder(filter.asURI(metadata.queryEndpoint)).GET().build();
@@ -463,7 +465,7 @@ <T extends AccessCredential> List<T> processFilterResponseBody(final InputStream
463465
if (!types.isEmpty()) {
464466
final Map<String, Object> presentation = new HashMap<>();
465467
presentation.put(CONTEXT, Arrays.asList(VC_CONTEXT_URI));
466-
presentation.put(TYPE, Arrays.asList("VerifiablePresentation"));
468+
presentation.put(TYPE, Arrays.asList(VERIFIABLE_PRESENTATION));
467469
presentation.put(VERIFIABLE_CREDENTIAL, Arrays.asList(credential));
468470
final T c = cast(presentation, clazz);
469471
if (c != null) {
@@ -647,7 +649,7 @@ <T extends AccessCredential> T processVerifiableCredential(final InputStream inp
647649
if (!types.isEmpty()) {
648650
final Map<String, Object> presentation = new HashMap<>();
649651
presentation.put(CONTEXT, Arrays.asList(VC_CONTEXT_URI));
650-
presentation.put(TYPE, Arrays.asList("VerifiablePresentation"));
652+
presentation.put(TYPE, Arrays.asList(VERIFIABLE_PRESENTATION));
651653
presentation.put(VERIFIABLE_CREDENTIAL, Arrays.asList(data));
652654
final T credential = cast(presentation, clazz);
653655
if (credential != null) {
@@ -668,7 +670,7 @@ <T extends AccessCredential> List<T> processQueryResponse(final InputStream inpu
668670
if (!types.isEmpty()) {
669671
final Map<String, Object> presentation = new HashMap<>();
670672
presentation.put(CONTEXT, Arrays.asList(VC_CONTEXT_URI));
671-
presentation.put(TYPE, Arrays.asList("VerifiablePresentation"));
673+
presentation.put(TYPE, Arrays.asList(VERIFIABLE_PRESENTATION));
672674
presentation.put(VERIFIABLE_CREDENTIAL, Arrays.asList(credential));
673675
final T c = cast(presentation, clazz);
674676
if (c != null) {

access-grant/src/test/java/com/inrupt/client/accessgrant/AccessGrantClientTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,14 @@ class AccessGrantClientTest {
6767

6868
private static final MockAccessGrantServer mockServer = new MockAccessGrantServer();
6969
private static AccessGrantClient agClient;
70+
private static AccessGrantClient altAgClient;
7071
private static URI baseUri;
7172

7273
@BeforeAll
7374
static void setup() {
7475
baseUri = URI.create(mockServer.start());
7576
agClient = new AccessGrantClient(baseUri);
77+
altAgClient = new AccessGrantClient(URIBuilder.newBuilder(baseUri).path("alternative").build());
7678
}
7779

7880
@AfterAll
@@ -487,6 +489,30 @@ void testQueryPageFilter() {
487489

488490
}
489491

492+
@Test
493+
void testQueryAltPageFilter() {
494+
final Map<String, Object> claims = new HashMap<>();
495+
claims.put("webid", WEBID);
496+
claims.put("sub", SUB);
497+
claims.put("iss", ISS);
498+
claims.put("azp", AZP);
499+
final String token = generateIdToken(claims);
500+
final AccessGrantClient client = altAgClient.session(OpenIdSession.ofIdToken(token));
501+
502+
final URI resource = URI.create("https://storage.example/e973cc3d-5c28-4a10-98c5-e40079289358/");
503+
final CredentialFilter<AccessGrant> filter = CredentialFilter.newBuilder().page("1").pageSize(5)
504+
.resource(resource).build(AccessGrant.class);
505+
506+
final CredentialResult<AccessGrant> results = client.query(filter).toCompletableFuture().join();
507+
508+
assertEquals(1, results.getItems().size());
509+
assertEquals("/access-grant-1", results.getItems().get(0).getIdentifier().getPath());
510+
assertEquals(Optional.empty(), results.prevPage());
511+
assertEquals(Optional.empty(), results.nextPage());
512+
assertEquals(Optional.empty(), results.firstPage());
513+
assertEquals(Optional.empty(), results.lastPage());
514+
}
515+
490516
@Test
491517
void testQueryGrant() {
492518
final Map<String, Object> claims = new HashMap<>();

access-grant/src/test/java/com/inrupt/client/accessgrant/MockAccessGrantServer.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ public void stop() {
5656
}
5757

5858
private void setupMocks() {
59+
wireMockServer.stubFor(get(urlEqualTo("/alternative/.well-known/vc-configuration"))
60+
.willReturn(aResponse()
61+
.withStatus(200)
62+
.withHeader(CONTENT_TYPE, APPLICATION_JSON)
63+
.withBody(getResource("/alternative-vc-configuration.json", wireMockServer.baseUrl()))));
64+
5965
wireMockServer.stubFor(get(urlEqualTo("/.well-known/vc-configuration"))
6066
.willReturn(aResponse()
6167
.withStatus(200)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* Copyright Inrupt Inc.
3+
*
4+
* Permission is hereby granted, free of charge, to any person obtaining a copy
5+
* of this software and associated documentation files (the "Software"), to deal in
6+
* the Software without restriction, including without limitation the rights to use,
7+
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
8+
* Software, and to permit persons to whom the Software is furnished to do so,
9+
* subject to the following conditions:
10+
*
11+
* The above copyright notice and this permission notice shall be included in
12+
* all copies or substantial portions of the Software.
13+
*
14+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
15+
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
16+
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
17+
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
19+
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20+
*/
21+
package com.inrupt.client.accessgrant;
22+
23+
import static org.junit.jupiter.api.Assertions.*;
24+
25+
import java.util.Arrays;
26+
import java.util.Optional;
27+
28+
import org.junit.jupiter.api.Test;
29+
30+
class UtilsTest {
31+
32+
@Test
33+
void testAsList() {
34+
assertEquals(Optional.empty(), Utils.asList("not a list"));
35+
final Object list = Arrays.asList("one", 2, 12.5f);
36+
assertEquals(Optional.of(list), Utils.asList(list));
37+
}
38+
39+
@Test
40+
void testCeilDiv() {
41+
assertEquals(3, Utils.ceilDiv(10, 4));
42+
assertEquals(3, Utils.ceilDiv(11, 4));
43+
assertEquals(3, Utils.ceilDiv(12, 4));
44+
assertEquals(4, Utils.ceilDiv(13, 4));
45+
assertEquals(4, Utils.ceilDiv(14, 4));
46+
assertEquals(4, Utils.ceilDiv(15, 4));
47+
assertEquals(4, Utils.ceilDiv(16, 4));
48+
assertEquals(5, Utils.ceilDiv(17, 4));
49+
assertEquals(5, Utils.ceilDiv(18, 4));
50+
assertEquals(5, Utils.ceilDiv(19, 4));
51+
assertEquals(5, Utils.ceilDiv(20, 4));
52+
assertEquals(6, Utils.ceilDiv(21, 4));
53+
assertEquals(6, Utils.ceilDiv(22, 4));
54+
assertEquals(6, Utils.ceilDiv(23, 4));
55+
assertEquals(6, Utils.ceilDiv(24, 4));
56+
assertEquals(7, Utils.ceilDiv(25, 4));
57+
}
58+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"@context": [
3+
"https://www.w3.org/2018/credentials/v1",
4+
"https://schema.inrupt.com/credentials/v1.jsonld"
5+
],
6+
"derivationService": "{{baseUrl}}/derive",
7+
"issuerService": "{{baseUrl}}/issue",
8+
"statusService": "{{baseUrl}}/status",
9+
"supportedSignatureTypes": [
10+
"Ed25519Signature2020"
11+
],
12+
"verifierService": "{{baseUrl}}/verify"
13+
}

0 commit comments

Comments
 (0)