diff options
author | Liam Fallon <liam.fallon@est.tech> | 2022-02-14 16:43:01 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2022-02-14 16:43:01 +0000 |
commit | 0a4b86c33bc78b391e4cf145523e2b2505c3b73f (patch) | |
tree | 31118e7785ea50cb4c6c94d5f57c01b9275ef040 /gui-editors/gui-editor-apex/src/test | |
parent | 4d0642971f7bc16523fa5e9970a63424aa4cb8f7 (diff) | |
parent | 05947953238a436f32e1b18d1201cf53f8817a1e (diff) |
Merge "Fix race condition in apex-editor model upload"
Diffstat (limited to 'gui-editors/gui-editor-apex/src/test')
2 files changed, 45 insertions, 10 deletions
diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/RestSessionTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/RestSessionTest.java index b2158ce..121faa0 100644 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/RestSessionTest.java +++ b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/RestSessionTest.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. + * Copyright (C) 2021-2022 Nordix Foundation. * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -139,7 +139,7 @@ public class RestSessionTest { final var toscaPath = Path.of("src/test/resources/models/PolicyModel.yaml"); final var toscaString = Files.readString(toscaPath); restSession.loadFromString(toscaString); - final var apexApiResult = restSession.uploadModel(); + final var apexApiResult = restSession.uploadModel(""); assertThat(apexApiResult.isNok()).isTrue(); assertThat(apexApiResult.getMessage()).contains("Model upload is disabled"); } diff --git a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/PolicyUploadHandlerTest.java b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/PolicyUploadHandlerTest.java index 7c97734..ff4cfa2 100644 --- a/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/PolicyUploadHandlerTest.java +++ b/gui-editors/gui-editor-apex/src/test/java/org/onap/policy/gui/editors/apex/rest/handling/plugin/upload/PolicyUploadHandlerTest.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. + * Copyright (C) 2021-2022 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import java.nio.file.Files; import java.nio.file.Path; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation; import javax.ws.rs.client.ResponseProcessingException; import javax.ws.rs.client.WebTarget; @@ -38,6 +39,7 @@ import org.apache.commons.lang3.RandomStringUtils; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatchers; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -46,10 +48,12 @@ import org.onap.policy.gui.editors.apex.rest.ApexEditorMain; public class PolicyUploadHandlerTest { + private static final String CMDLINE_UPLOAD_USERID = "MyUser"; private PolicyUploadHandler uploadHandler; private AxArtifactKey axArtifactKey; private String toscaServiceTemplate; private MockedStatic<ClientBuilder> clientBuilderMockedStatic; + private ArgumentCaptor<Entity<UploadPolicyRequestDto>> dtoEntityCaptor; /** * Prepares test environment. @@ -78,12 +82,12 @@ public class PolicyUploadHandlerTest { @Test public void testDoUploadNoUrl() { - final String[] args = {"--upload-userid", "MyUser"}; + final String[] args = {"--upload-userid", CMDLINE_UPLOAD_USERID}; final var outBaStream = new ByteArrayOutputStream(); final var outStream = new PrintStream(outBaStream); new ApexEditorMain(args, outStream); - final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, ""); + final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", ""); assertThat(result.isNok()).isTrue(); assertThat(result.getMessage()).contains("Model upload is disable"); } @@ -96,7 +100,7 @@ public class PolicyUploadHandlerTest { prepareApexEditorMain(); - final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, ""); + final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", ""); assertThat(result.isNok()).isTrue(); assertThat(result.getMessage()).contains("failed with error"); @@ -111,7 +115,7 @@ public class PolicyUploadHandlerTest { prepareApexEditorMain(); - final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, ""); + final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", ""); assertThat(result.isOk()).isTrue(); } @@ -125,12 +129,41 @@ public class PolicyUploadHandlerTest { prepareApexEditorMain(); - final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, ""); + final var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", ""); assertThat(result.isNok()).isTrue(); assertThat(result.getMessage()).contains("failed with status 500"); } + @Test + public void testDoUploadUserId() { + final var response = Mockito.mock(Response.class); + mockRsHttpClient(response); + + Mockito.doReturn(201).when(response).getStatus(); + + prepareApexEditorMain(); + + // If uploadUserId is specified, that value should be in DTO. + var result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", + "OverrideUser"); + assertThat(result.isOk()).isTrue(); + var dto = dtoEntityCaptor.getValue().getEntity(); + assertThat(dto.getUserId()).isEqualTo("OverrideUser"); + + // If uploadUserId is blank, the value from command line parameter 'upload-userid' is used. + result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", ""); + assertThat(result.isOk()).isTrue(); + dto = dtoEntityCaptor.getValue().getEntity(); + assertThat(dto.getUserId()).isEqualTo(CMDLINE_UPLOAD_USERID); + + // If uploadUserId is null, the value from command line parameter 'upload-userid' is used. + result = uploadHandler.doUpload(toscaServiceTemplate, axArtifactKey, "", null); + assertThat(result.isOk()).isTrue(); + dto = dtoEntityCaptor.getValue().getEntity(); + assertThat(dto.getUserId()).isEqualTo(CMDLINE_UPLOAD_USERID); + } + private void mockRsHttpClient(Response response) { final var webTarget = Mockito.mock(WebTarget.class); final var client = Mockito.mock(Client.class); @@ -139,15 +172,17 @@ public class PolicyUploadHandlerTest { clientBuilderMockedStatic = Mockito.mockStatic(ClientBuilder.class); + dtoEntityCaptor = ArgumentCaptor.forClass(Entity.class); + Mockito.when(ClientBuilder.newClient()).thenReturn(client); Mockito.when(client.target(ArgumentMatchers.anyString())).thenReturn(webTarget); Mockito.when(webTarget.request(MediaType.APPLICATION_JSON)).thenReturn(invocationBuilder); Mockito.when(webTarget.request(MediaType.APPLICATION_JSON)).thenReturn(invocationBuilder); - Mockito.when(invocationBuilder.post(ArgumentMatchers.any())).thenReturn(response); + Mockito.when(invocationBuilder.post(dtoEntityCaptor.capture())).thenReturn(response); } private void prepareApexEditorMain() { - final String[] args = {"--upload-userid", "MyUser", "--upload-url", "http://127.0.0.1"}; + final String[] args = {"--upload-userid", CMDLINE_UPLOAD_USERID, "--upload-url", "http://127.0.0.1"}; final var outBaStream = new ByteArrayOutputStream(); final var outStream = new PrintStream(outBaStream); new ApexEditorMain(args, outStream); |