Skip to content

Commit a86d3c4

Browse files
authored
Merge pull request #57 from /issues/22-test-coverage-katta-services-part-2
Test coverage katta services (part II).
2 parents fa2cff6 + 457a8ea commit a86d3c4

File tree

3 files changed

+98
-11
lines changed

3 files changed

+98
-11
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Copyright (c) 2025 shift7 GmbH. All rights reserved.
3+
*/
4+
5+
package ch.iterate.hub.workflows;
6+
7+
import org.junit.jupiter.api.Test;
8+
import org.mockito.Mockito;
9+
10+
import ch.iterate.hub.client.ApiException;
11+
import ch.iterate.hub.crypto.UserKeys;
12+
import ch.iterate.hub.workflows.exceptions.AccessException;
13+
import ch.iterate.hub.workflows.exceptions.SecurityFailure;
14+
15+
import static org.junit.jupiter.api.Assertions.assertEquals;
16+
import static org.mockito.ArgumentMatchers.any;
17+
import static org.mockito.Mockito.times;
18+
19+
class CachingUserKeysServiceTest {
20+
21+
@Test
22+
void testGetUserKeys() throws AccessException, SecurityFailure, ApiException {
23+
final UserKeysService proxyMock = Mockito.mock(UserKeysService.class);
24+
final UserKeys userKeys = UserKeys.create();
25+
Mockito.when(proxyMock.getUserKeys(any(), any())).thenReturn(userKeys);
26+
final CachingUserKeysService service = new CachingUserKeysService(proxyMock);
27+
assertEquals(userKeys, service.getUserKeys(null, null));
28+
Mockito.verify(proxyMock, times(1)).getUserKeys(any(), any());
29+
assertEquals(userKeys, service.getUserKeys(null, null));
30+
Mockito.verify(proxyMock, times(1)).getUserKeys(any(), any());
31+
}
32+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* Copyright (c) 2025 shift7 GmbH. All rights reserved.
3+
*/
4+
5+
package ch.iterate.hub.workflows;
6+
7+
import org.junit.jupiter.api.Test;
8+
import org.mockito.Mockito;
9+
10+
import java.text.ParseException;
11+
import java.util.HashMap;
12+
13+
import ch.iterate.hub.client.ApiException;
14+
import ch.iterate.hub.client.model.TrustedUserDto;
15+
import ch.iterate.hub.workflows.exceptions.AccessException;
16+
import ch.iterate.hub.workflows.exceptions.SecurityFailure;
17+
import com.nimbusds.jose.JOSEException;
18+
19+
import static org.junit.jupiter.api.Assertions.assertEquals;
20+
import static org.mockito.ArgumentMatchers.any;
21+
import static org.mockito.Mockito.times;
22+
23+
class CachingWoTServiceTest {
24+
25+
@Test
26+
void testGetTrustLevelsPerUserId() throws AccessException, SecurityFailure, ApiException {
27+
final WoTService proxyMock = Mockito.mock(WoTService.class);
28+
final HashMap<String, Integer> trustLevels = new HashMap<String, Integer>() {{
29+
put("alkdajf", 5);
30+
put("lakdjfa", 42);
31+
}};
32+
Mockito.when(proxyMock.getTrustLevelsPerUserId(any())).thenReturn(trustLevels);
33+
final CachingWoTService service = new CachingWoTService(proxyMock);
34+
assertEquals(trustLevels, service.getTrustLevelsPerUserId(null));
35+
Mockito.verify(proxyMock, times(1)).getTrustLevelsPerUserId(any());
36+
assertEquals(trustLevels, service.getTrustLevelsPerUserId(null));
37+
Mockito.verify(proxyMock, times(1)).getTrustLevelsPerUserId(any());
38+
}
39+
40+
@Test
41+
void testVerify() throws AccessException, SecurityFailure, ApiException {
42+
final WoTService proxyMock = Mockito.mock(WoTService.class);
43+
final CachingWoTService service = new CachingWoTService(proxyMock);
44+
service.verify(null, null, null);
45+
Mockito.verify(proxyMock, times(1)).verify(any(), any(), any());
46+
service.verify(null, null, null);
47+
Mockito.verify(proxyMock, times(2)).verify(any(), any(), any());
48+
}
49+
50+
@Test
51+
void testSign() throws AccessException, SecurityFailure, ParseException, JOSEException, ApiException {
52+
final WoTService proxyMock = Mockito.mock(WoTService.class);
53+
final TrustedUserDto trustedUser = new TrustedUserDto();
54+
Mockito.when(proxyMock.sign(any(), any())).thenReturn(trustedUser);
55+
final CachingWoTService service = new CachingWoTService(proxyMock);
56+
assertEquals(trustedUser, service.sign(null, null));
57+
Mockito.verify(proxyMock, times(1)).sign(any(), any());
58+
assertEquals(trustedUser, service.sign(null, null));
59+
Mockito.verify(proxyMock, times(2)).sign(any(), any());
60+
}
61+
}

hub/src/test/java/ch/iterate/hub/workflows/WoTServiceImplTest.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
package ch.iterate.hub.workflows;
66

7-
import ch.cyberduck.core.Host;
8-
97
import org.cryptomator.cryptolib.common.P384KeyPair;
108
import org.junit.jupiter.api.Test;
119
import org.mockito.Mockito;
@@ -38,7 +36,7 @@
3836
class WoTServiceImplTest {
3937

4038
@Test
41-
void getTrustLevelsPerUserId() throws ParseException, JOSEException, ApiException, AccessException, SecurityFailure {
39+
void testGetTrustLevelsPerUserId() throws ParseException, JOSEException, ApiException, AccessException, SecurityFailure {
4240
final List<String> bobSignatureChain = new LinkedList<>();
4341
int len = 5;
4442

@@ -86,17 +84,15 @@ void getTrustLevelsPerUserId() throws ParseException, JOSEException, ApiExceptio
8684

8785
final UsersResourceApi usersMock = Mockito.mock(UsersResourceApi.class);
8886
final WoTServiceImpl wot = new WoTServiceImpl(usersMock);
89-
final Host hub = Mockito.mock(Host.class);
9087
Mockito.when(usersMock.apiUsersMeGet(true)).thenReturn(alice);
9188
Mockito.when(usersMock.apiUsersGet()).thenReturn(Arrays.asList(alice, bob, oscar));
9289
Mockito.when(usersMock.apiUsersTrustedGet()).thenReturn(Arrays.asList(bobTrust, oscarTrust));
9390

9491
assertEquals(Collections.singletonMap(bob.getId(), 5), wot.getTrustLevelsPerUserId(aliceKeys));
9592
}
9693

97-
9894
@Test
99-
void verify() throws ParseException, JOSEException, ApiException, AccessException, SecurityFailure {
95+
void testVerify() throws ParseException, JOSEException, ApiException, AccessException, SecurityFailure {
10096
final List<String> signatureChain = new LinkedList<>();
10197
int len = 5;
10298

@@ -106,9 +102,9 @@ void verify() throws ParseException, JOSEException, ApiException, AccessExceptio
106102
.name("bob")
107103
.ecdhPublicKey(encodePublicKey(bobKeys.ecdhKeyPair().getPublic()))
108104
.ecdsaPublicKey(encodePublicKey(bobKeys.ecdsaKeyPair().getPublic()));
105+
109106
UserKeys previousKeys = bobKeys;
110107
UserDto previousUser = bob;
111-
112108
for(int i = 0; i < len; i++) {
113109
final UserKeys userKeys = UserKeys.create();
114110
final UserDto user = new UserDto()
@@ -126,7 +122,6 @@ void verify() throws ParseException, JOSEException, ApiException, AccessExceptio
126122
final UserKeys aliceKeys = previousKeys;
127123

128124
final UsersResourceApi usersMock = Mockito.mock(UsersResourceApi.class);
129-
final Host hub = Mockito.mock(Host.class);
130125
Mockito.when(usersMock.apiUsersMeGet(true)).thenReturn(alice);
131126

132127
final WoTServiceImpl wot = new WoTServiceImpl(usersMock);
@@ -135,7 +130,7 @@ void verify() throws ParseException, JOSEException, ApiException, AccessExceptio
135130
}
136131

137132
@Test
138-
void sign() throws ApiException, ParseException, JOSEException, AccessException, SecurityFailure {
133+
void testSign() throws ApiException, ParseException, JOSEException, AccessException, SecurityFailure {
139134
final UserKeys aliceKeys = UserKeys.create();
140135
final P384KeyPair bobEcdhKeys = P384KeyPair.generate();
141136
final P384KeyPair bobEcdsaKeys = P384KeyPair.generate();
@@ -148,7 +143,6 @@ void sign() throws ApiException, ParseException, JOSEException, AccessException,
148143
final String expectedSignature = WoT.sign(aliceKeys.ecdsaKeyPair().getPrivate(), alice.getId(), bob);
149144

150145
final UsersResourceApi usersMock = Mockito.mock(UsersResourceApi.class);
151-
final Host hub = Mockito.mock(Host.class);
152146
Mockito.when(usersMock.apiUsersMeGet(true)).thenReturn(alice);
153147
final WoTServiceImpl wot = new WoTServiceImpl(usersMock);
154148
final TrustedUserDto expectedTrust = new TrustedUserDto().trustedUserId(bob.getId()).signatureChain(Collections.singletonList(expectedSignature));
@@ -158,4 +152,4 @@ void sign() throws ApiException, ParseException, JOSEException, AccessException,
158152
Mockito.verify(usersMock, times(1)).apiUsersTrustedUserIdPut(eq(bob.getId()), anyString());
159153
assertEquals(expectedTrust, trust);
160154
}
161-
}
155+
}

0 commit comments

Comments
 (0)