2 * Copyright (C) The Arvados Authors. All rights reserved.
4 * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
8 package org.arvados.client.api.client;
10 import com.google.common.collect.Lists;
11 import okhttp3.mockwebserver.RecordedRequest;
12 import org.arvados.client.api.model.Group;
13 import org.arvados.client.api.model.GroupList;
14 import org.arvados.client.api.model.argument.Filter;
15 import org.arvados.client.api.model.argument.ListArgument;
16 import org.arvados.client.test.utils.RequestMethod;
17 import org.arvados.client.test.utils.ArvadosClientMockedWebServerTest;
18 import org.junit.Test;
20 import java.util.Arrays;
22 import static org.arvados.client.test.utils.ApiClientTestUtils.*;
23 import static org.junit.Assert.assertEquals;
25 public class GroupsApiClientTest extends ArvadosClientMockedWebServerTest {
26 private static final String RESOURCE = "groups";
27 private GroupsApiClient client = new GroupsApiClient(CONFIG);
30 public void listGroups() throws Exception {
33 server.enqueue(getResponse("groups-list"));
36 GroupList actual = client.list();
39 RecordedRequest request = server.takeRequest();
40 assertAuthorizationHeader(request);
41 assertRequestPath(request, RESOURCE);
42 assertRequestMethod(request, RequestMethod.GET);
43 assertEquals(20, actual.getItems().size());
47 public void listProjectsByOwner() throws Exception {
50 server.enqueue(getResponse("groups-list"));
51 String ownerUuid = "ardev-tpzed-n3kzq4fvoks3uw4";
52 String filterSubPath = "?filters=[%20[%20%22owner_uuid%22,%20%22like%22,%20%22ardev-tpzed-n3kzq4fvoks3uw4%22%20],%20" +
53 "[%20%22group_class%22,%20%22in%22,%20[%20%22project%22,%20%22sub-project%22%20]%20]%20]";
56 ListArgument listArgument = ListArgument.builder()
57 .filters(Arrays.asList(
58 Filter.of("owner_uuid", Filter.Operator.LIKE, ownerUuid),
59 Filter.of("group_class", Filter.Operator.IN, Lists.newArrayList("project", "sub-project")
62 GroupList actual = client.list(listArgument);
65 RecordedRequest request = server.takeRequest();
66 assertAuthorizationHeader(request);
67 assertRequestPath(request, RESOURCE + filterSubPath);
68 assertRequestMethod(request, RequestMethod.GET);
69 assertEquals(20, actual.getItems().size());
73 public void getGroup() throws Exception {
76 server.enqueue(getResponse("groups-get"));
78 String uuid = "ardev-j7d0g-bmg3pfqtx3ivczp";
81 Group actual = client.get(uuid);
84 RecordedRequest request = server.takeRequest();
85 assertAuthorizationHeader(request);
86 assertRequestPath(request, RESOURCE + "/" + uuid);
87 assertRequestMethod(request, RequestMethod.GET);
88 assertEquals(uuid, actual.getUuid());
89 assertEquals("3hw0vk4mbl0ofvia5k6x4dwrx", actual.getEtag());
90 assertEquals("ardev-tpzed-n3kzq4fvoks3uw4", actual.getOwnerUuid());
91 assertEquals("TestGroup1", actual.getName());
92 assertEquals("project", actual.getGroupClass());