21700: Install Bundler system-wide in Rails postinst
[arvados.git] / sdk / java-v2 / src / test / java / org / arvados / client / api / client / GroupsApiClientTest.java
1 /*
2  * Copyright (C) The Arvados Authors. All rights reserved.
3  *
4  * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
5  *
6  */
7
8 package org.arvados.client.api.client;
9
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;
19
20 import java.util.Arrays;
21
22 import static org.arvados.client.test.utils.ApiClientTestUtils.*;
23 import static org.junit.Assert.assertEquals;
24
25 public class GroupsApiClientTest extends ArvadosClientMockedWebServerTest {
26     private static final String RESOURCE = "groups";
27     private GroupsApiClient client = new GroupsApiClient(CONFIG);
28
29     @Test
30     public void listGroups() throws Exception {
31
32         // given
33         server.enqueue(getResponse("groups-list"));
34
35         // when
36         GroupList actual = client.list();
37
38         // then
39         RecordedRequest request = server.takeRequest();
40         assertAuthorizationHeader(request);
41         assertRequestPath(request, RESOURCE);
42         assertRequestMethod(request, RequestMethod.GET);
43         assertEquals(20, actual.getItems().size());
44     }
45
46     @Test
47     public void listProjectsByOwner() throws Exception {
48
49         // given
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]";
54
55         // when
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")
60                         )))
61                 .build();
62         GroupList actual = client.list(listArgument);
63
64         // then
65         RecordedRequest request = server.takeRequest();
66         assertAuthorizationHeader(request);
67         assertRequestPath(request, RESOURCE + filterSubPath);
68         assertRequestMethod(request, RequestMethod.GET);
69         assertEquals(20, actual.getItems().size());
70     }
71
72     @Test
73     public void getGroup() throws Exception {
74
75         // given
76         server.enqueue(getResponse("groups-get"));
77
78         String uuid = "ardev-j7d0g-bmg3pfqtx3ivczp";
79
80         // when
81         Group actual = client.get(uuid);
82
83         // then
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());
93
94     }
95 }