Skip to content

Commit 5906d52

Browse files
committed
Add unit tests for api/client_side_keypairs/add keyset
1 parent ed04322 commit 5906d52

1 file changed

Lines changed: 46 additions & 9 deletions

File tree

src/test/java/com/uid2/admin/vertx/ClientSideKeypairServiceTest.java

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.uid2.admin.vertx;
22

3+
import com.uid2.admin.auth.AdminKeyset;
34
import com.uid2.admin.secret.SecureKeypairGenerator;
45
import com.uid2.admin.store.Clock;
56
import com.uid2.admin.vertx.service.ClientSideKeypairService;
67
import com.uid2.admin.vertx.service.IService;
78
import com.uid2.admin.vertx.test.ServiceTestBase;
89
import com.uid2.shared.auth.Role;
910
import com.uid2.shared.model.ClientSideKeypair;
11+
import com.uid2.shared.model.ClientType;
1012
import com.uid2.shared.model.Site;
1113
import io.vertx.core.Vertx;
1214
import io.vertx.core.json.JsonArray;
@@ -17,13 +19,12 @@
1719
import org.junit.jupiter.params.ParameterizedTest;
1820
import org.junit.jupiter.params.provider.Arguments;
1921
import org.junit.jupiter.params.provider.MethodSource;
20-
import org.mockito.ArgumentCaptor;
21-
2222
import java.time.Instant;
2323
import java.util.*;
2424
import java.util.stream.Stream;
2525

2626
import static org.junit.jupiter.api.Assertions.*;
27+
import static org.mockito.ArgumentMatchers.anyInt;
2728
import static org.mockito.Mockito.*;
2829

2930
public class ClientSideKeypairServiceTest extends ServiceTestBase {
@@ -253,18 +254,14 @@ void addKeypair(Vertx vertx, VertxTestContext testContext) throws Exception {
253254
setKeypairs(new ArrayList<>(expectedKeypairs.values()));
254255
setSites(new Site(123, "test", true));
255256

257+
Map<Integer, AdminKeyset> adminKeysets = new HashMap<>();
258+
setAdminKeysets(adminKeysets);
259+
256260
JsonObject jo = new JsonObject();
257261
jo.put("site_id", 123);
258262
jo.put("contact", "email@email.com");
259263

260264
post(vertx, testContext, "api/client_side_keypairs/add", jo.encode(), response -> {
261-
final ArgumentCaptor<Integer> siteId = ArgumentCaptor.forClass(Integer.class);
262-
try {
263-
verify(this.keysetManager).createKeysetForSite(siteId.capture());
264-
} catch (Exception e) {
265-
fail(e);
266-
}
267-
assertEquals(123, siteId.getValue());
268265
assertEquals(200, response.statusCode());
269266
JsonObject resp = response.bodyAsJsonObject();
270267
assertEquals(123, resp.getInteger("site_id"));
@@ -276,6 +273,46 @@ void addKeypair(Vertx vertx, VertxTestContext testContext) throws Exception {
276273
assertEquals("UID2-X-L-", resp.getString("public_key").substring(0, 9));
277274
assertEquals(KEY_CREATE_TIME_IN_SECONDS, resp.getLong("created"));
278275
assertEquals(false, resp.getBoolean("disabled"));
276+
AdminKeyset keyset = adminKeysets.values().stream()
277+
.filter(k -> k.getSiteId() == 123)
278+
.findFirst()
279+
.orElseThrow();
280+
assertTrue(keyset.getAllowedSites().isEmpty());
281+
assertEquals(Set.of(ClientType.DSP), keyset.getAllowedTypes());
282+
assertTrue(keyset.isDefault());
283+
verify(keysetKeyManager).addKeysetKey(keyset.getKeysetId());
284+
verify(adminKeysetWriter).upload(any(), isNull());
285+
verify(keypairStoreWriter, times(1)).upload(any(), isNull());
286+
testContext.completeNow();
287+
});
288+
}
289+
290+
@Test
291+
void addKeypair_createsKeysetForSiteWhenNoneExists(Vertx vertx, VertxTestContext testContext) throws Exception {
292+
fakeAuth(Role.MAINTAINER);
293+
setSites(new Site(456, "csp_keyset_site", true));
294+
setKeypairs(new ArrayList<>());
295+
296+
Map<Integer, AdminKeyset> adminKeysets = new HashMap<>();
297+
setAdminKeysets(adminKeysets);
298+
299+
JsonObject jo = new JsonObject();
300+
jo.put("site_id", 456);
301+
jo.put("contact", "keyset-check@example.com");
302+
303+
post(vertx, testContext, "api/client_side_keypairs/add", jo.encode(), response -> {
304+
assertEquals(200, response.statusCode());
305+
306+
AdminKeyset keyset = adminKeysets.values().stream()
307+
.filter(k -> k.getSiteId() == 456)
308+
.findFirst()
309+
.orElseThrow();
310+
assertTrue(keyset.getAllowedSites().isEmpty());
311+
assertEquals(Set.of(ClientType.DSP), keyset.getAllowedTypes());
312+
assertTrue(keyset.isDefault());
313+
314+
verify(keysetKeyManager).addKeysetKey(keyset.getKeysetId());
315+
verify(adminKeysetWriter).upload(any(), isNull());
279316
verify(keypairStoreWriter, times(1)).upload(any(), isNull());
280317
testContext.completeNow();
281318
});

0 commit comments

Comments
 (0)