|
6 | 6 |
|
7 | 7 | import static io.airbyte.db.instance.configs.jooq.Tables.ACTOR_CATALOG;
|
8 | 8 | import static org.assertj.core.api.Assertions.assertThat;
|
9 |
| -import static org.junit.jupiter.api.Assertions.*; |
| 9 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 10 | +import static org.junit.jupiter.api.Assertions.assertFalse; |
| 11 | +import static org.junit.jupiter.api.Assertions.assertTrue; |
10 | 12 | import static org.mockito.Mockito.spy;
|
11 | 13 |
|
12 | 14 | import io.airbyte.commons.json.Jsons;
|
|
31 | 33 | import java.io.IOException;
|
32 | 34 | import java.sql.SQLException;
|
33 | 35 | import java.util.List;
|
| 36 | +import java.util.Map; |
| 37 | +import java.util.Map.Entry; |
34 | 38 | import java.util.Optional;
|
35 | 39 | import java.util.UUID;
|
36 | 40 | import org.junit.jupiter.api.AfterAll;
|
@@ -162,10 +166,60 @@ public void testListPublicSourceDefinitions() throws IOException {
|
162 | 166 | assertEquals(List.of(MockData.standardSourceDefinitions().get(0)), actualDefinitions);
|
163 | 167 | }
|
164 | 168 |
|
| 169 | + @Test |
| 170 | + public void testSourceDefinitionGrants() throws IOException { |
| 171 | + final UUID workspaceId = MockData.standardWorkspaces().get(0).getWorkspaceId(); |
| 172 | + final StandardSourceDefinition grantableDefinition1 = MockData.standardSourceDefinitions().get(1); |
| 173 | + final StandardSourceDefinition grantableDefinition2 = MockData.standardSourceDefinitions().get(2); |
| 174 | + final StandardSourceDefinition customDefinition = MockData.standardSourceDefinitions().get(3); |
| 175 | + |
| 176 | + configRepository.writeActorDefinitionWorkspaceGrant(customDefinition.getSourceDefinitionId(), workspaceId); |
| 177 | + configRepository.writeActorDefinitionWorkspaceGrant(grantableDefinition1.getSourceDefinitionId(), workspaceId); |
| 178 | + final List<StandardSourceDefinition> actualGrantedDefinitions = configRepository |
| 179 | + .listGrantedSourceDefinitions(workspaceId, false); |
| 180 | + assertThat(actualGrantedDefinitions).hasSameElementsAs(List.of(grantableDefinition1, customDefinition)); |
| 181 | + |
| 182 | + final List<Entry<StandardSourceDefinition, Boolean>> actualGrantableDefinitions = configRepository |
| 183 | + .listGrantableSourceDefinitions(workspaceId, false); |
| 184 | + assertThat(actualGrantableDefinitions).hasSameElementsAs(List.of( |
| 185 | + Map.entry(grantableDefinition1, true), |
| 186 | + Map.entry(grantableDefinition2, false))); |
| 187 | + |
| 188 | + configRepository.deleteActorDefinitionWorkspaceGrant(customDefinition.getSourceDefinitionId(), workspaceId); |
| 189 | + final List<StandardSourceDefinition> actualGrantedDefinitions2 = configRepository |
| 190 | + .listGrantedSourceDefinitions(workspaceId, false); |
| 191 | + assertEquals(List.of(grantableDefinition1), actualGrantedDefinitions2); |
| 192 | + } |
| 193 | + |
165 | 194 | @Test
|
166 | 195 | public void testListPublicDestinationDefinitions() throws IOException {
|
167 | 196 | final List<StandardDestinationDefinition> actualDefinitions = configRepository.listPublicDestinationDefinitions(false);
|
168 | 197 | assertEquals(List.of(MockData.standardDestinationDefinitions().get(0)), actualDefinitions);
|
169 | 198 | }
|
170 | 199 |
|
| 200 | + @Test |
| 201 | + public void testDestinationDefinitionGrants() throws IOException { |
| 202 | + final UUID workspaceId = MockData.standardWorkspaces().get(0).getWorkspaceId(); |
| 203 | + final StandardDestinationDefinition grantableDefinition1 = MockData.standardDestinationDefinitions().get(1); |
| 204 | + final StandardDestinationDefinition grantableDefinition2 = MockData.standardDestinationDefinitions().get(2); |
| 205 | + final StandardDestinationDefinition customDefinition = MockData.standardDestinationDefinitions().get(3); |
| 206 | + |
| 207 | + configRepository.writeActorDefinitionWorkspaceGrant(customDefinition.getDestinationDefinitionId(), workspaceId); |
| 208 | + configRepository.writeActorDefinitionWorkspaceGrant(grantableDefinition1.getDestinationDefinitionId(), workspaceId); |
| 209 | + final List<StandardDestinationDefinition> actualGrantedDefinitions = configRepository |
| 210 | + .listGrantedDestinationDefinitions(workspaceId, false); |
| 211 | + assertThat(actualGrantedDefinitions).hasSameElementsAs(List.of(grantableDefinition1, customDefinition)); |
| 212 | + |
| 213 | + final List<Entry<StandardDestinationDefinition, Boolean>> actualGrantableDefinitions = configRepository |
| 214 | + .listGrantableDestinationDefinitions(workspaceId, false); |
| 215 | + assertThat(actualGrantableDefinitions).hasSameElementsAs(List.of( |
| 216 | + Map.entry(grantableDefinition1, true), |
| 217 | + Map.entry(grantableDefinition2, false))); |
| 218 | + |
| 219 | + configRepository.deleteActorDefinitionWorkspaceGrant(customDefinition.getDestinationDefinitionId(), workspaceId); |
| 220 | + final List<StandardDestinationDefinition> actualGrantedDefinitions2 = configRepository |
| 221 | + .listGrantedDestinationDefinitions(workspaceId, false); |
| 222 | + assertEquals(List.of(grantableDefinition1), actualGrantedDefinitions2); |
| 223 | + } |
| 224 | + |
171 | 225 | }
|
0 commit comments