use of com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig in project sechub by mercedes-benz.
the class ProductExecutionProfileRestControllerRestDocTest method restdoc_admin_updates_profile.
@Test
@UseCaseRestDoc(useCase = UseCaseAdminUpdatesExecutionProfile.class)
public void restdoc_admin_updates_profile() throws Exception {
/* prepare */
String apiEndpoint = https(PORT_USED).buildAdminUpdatesProductExecutionProfile(PROFILE_ID.pathElement());
Class<? extends Annotation> useCase = UseCaseAdminUpdatesExecutionProfile.class;
String profileId = "existing-profile-1";
TestExecutionProfile profile = new TestExecutionProfile();
profile.description = "changed description";
profile.enabled = true;
UUID randomUUID = UUID.randomUUID();
TestExecutorConfig configFromUser = new TestExecutorConfig();
configFromUser.uuid = randomUUID;
profile.configurations.add(configFromUser);
profile.projectIds = null;
/* execute + test @formatter:off */
this.mockMvc.perform(put(apiEndpoint, profileId).contentType(MediaType.APPLICATION_JSON_VALUE).content(JSONConverter.get().toJSON(profile))).andExpect(status().isOk()).andDo(defineRestService().with().useCaseData(useCase).tag(RestDocFactory.extractTag(apiEndpoint)).requestSchema(OpenApiSchema.EXECUTION_PROFILE_UPDATE.getSchema()).and().document(requestFields(fieldWithPath(PROPERTY_DESCRIPTION).description("A short description for the profile"), fieldWithPath(PROPERTY_ENABLED).description("Enabled state of profile, default is false").optional(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_UUID).description("Add uuid for configuration to use here"), /* ignore next parts - only inside test json, also ignored at update, because there only uuid is used */
fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_ENABLED).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_EXECUTORVERSION).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS).ignored()), pathParameters(parameterWithName(PROFILE_ID.paramName()).description("The profile id"))));
/* @formatter:on */
}
use of com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig in project sechub by mercedes-benz.
the class ProductExecutionProfileRestControllerRestDocTest method restdoc_admin_fetches_profile.
@Test
@UseCaseRestDoc(useCase = UseCaseAdminFetchesExecutionProfile.class)
public void restdoc_admin_fetches_profile() throws Exception {
/* prepare */
String apiEndpoint = https(PORT_USED).buildAdminFetchesProductExecutionProfile(PROFILE_ID.pathElement());
Class<? extends Annotation> useCase = UseCaseAdminFetchesExecutionProfile.class;
String profileId = "existing-profile-1";
TestExecutionProfile testprofile = new TestExecutionProfile();
testprofile.description = "a description";
testprofile.enabled = true;
UUID randomUUID = UUID.randomUUID();
TestExecutorConfig configFromUser = new TestExecutorConfig();
configFromUser.enabled = false;
configFromUser.name = "New name";
configFromUser.productIdentifier = ProductIdentifier.PDS_CODESCAN.name();
configFromUser.executorVersion = 1;
configFromUser.setup.baseURL = "https://product.example.com";
configFromUser.setup.credentials.user = "env:EXAMPLE_USENAME";
configFromUser.setup.credentials.password = "env:EXAMPLE_PASSWORD";
configFromUser.uuid = randomUUID;
TestExecutorSetupJobParam param1 = new TestExecutorSetupJobParam("example.key1", "A value but changed. Remark: the other parameter (example.key2) has been removed by this call");
configFromUser.setup.jobParameters.add(param1);
testprofile.configurations.add(configFromUser);
testprofile.projectIds.add("project-1");
testprofile.projectIds.add("project-2");
ProductExecutionProfile profile = JSONConverter.get().fromJSON(ProductExecutionProfile.class, JSONConverter.get().toJSON(testprofile));
when(fetchService.fetchProductExecutorConfig(profileId)).thenReturn(profile);
/* execute + test @formatter:off */
this.mockMvc.perform(get(apiEndpoint, profileId).contentType(MediaType.APPLICATION_JSON_VALUE)).andExpect(status().isOk()).andDo(defineRestService().with().useCaseData(useCase).tag(RestDocFactory.extractTag(apiEndpoint)).responseSchema(OpenApiSchema.EXECUTION_PROFILE_FETCH.getSchema()).and().document(responseFields(fieldWithPath(PROPERTY_ID).optional().ignored(), fieldWithPath(PROPERTY_DESCRIPTION).description("A short description for the profile"), fieldWithPath(PROPERTY_ENABLED).description("Enabled state of profile, default is false").optional(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_UUID).description("uuid of configuration"), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_NAME).description("name of configuration"), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_ENABLED).description("enabled state of this config"), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_PRODUCTIDENTIFIER).description("executed product"), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_EXECUTORVERSION).description("executor version"), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_BASEURL).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS + "." + ProductExecutorConfigSetupCredentials.PROPERTY_USER).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS + "." + ProductExecutorConfigSetupCredentials.PROPERTY_PASSWORD).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS + "[]." + ProductExecutorConfigSetupJobParameter.PROPERTY_KEY).ignored(), fieldWithPath(PROPERTY_CONFIGURATIONS + "[]." + ProductExecutorConfig.PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS + "[]." + ProductExecutorConfigSetupJobParameter.PROPERTY_VALUE).ignored(), fieldWithPath(PROPERTY_PROJECT_IDS + "[]").description("Projects can be linked by their ids here")), pathParameters(parameterWithName(PROFILE_ID.paramName()).description("The profile id"))));
/* @formatter:on */
}
use of com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig in project sechub by mercedes-benz.
the class ProductExecutorConfigRestControllerRestDocTest method restdoc_admin_fetches_executor_config.
@Test
@UseCaseRestDoc(useCase = UseCaseAdminFetchesExecutorConfiguration.class)
public void restdoc_admin_fetches_executor_config() throws Exception {
/* prepare */
String apiEndpoint = https(PORT_USED).buildAdminFetchesProductExecutorConfig(UUID_PARAMETER.pathElement());
Class<? extends Annotation> useCase = UseCaseAdminFetchesExecutorConfiguration.class;
UUID uuid = UUID.randomUUID();
TestExecutorConfig testConfig = new TestExecutorConfig();
testConfig.uuid = uuid;
testConfig.enabled = false;
testConfig.name = "New name";
testConfig.productIdentifier = ProductIdentifier.PDS_CODESCAN.name();
testConfig.executorVersion = 1;
testConfig.setup.baseURL = "https://product.example.com";
testConfig.setup.credentials.user = "env:EXAMPLE_USENAME";
testConfig.setup.credentials.password = "env:EXAMPLE_PASSWORD";
TestExecutorSetupJobParam param1 = new TestExecutorSetupJobParam("example.key1", "A value");
testConfig.setup.jobParameters.add(param1);
ProductExecutorConfig config = JSONConverter.get().fromJSON(ProductExecutorConfig.class, JSONConverter.get().toJSON(testConfig));
when(fetchService.fetchProductExecutorConfig(uuid)).thenReturn(config);
/* execute + test @formatter:off */
this.mockMvc.perform(get(apiEndpoint, uuid).contentType(MediaType.APPLICATION_JSON_VALUE)).andExpect(status().isOk()).andDo(defineRestService().with().useCaseData(useCase).tag(RestDocFactory.extractTag(apiEndpoint)).responseSchema(OpenApiSchema.EXECUTOR_CONFIGURATION_WITH_UUID.getSchema()).and().document(responseFields(fieldWithPath(PROPERTY_UUID).description("The uuid of this configuration"), fieldWithPath(PROPERTY_NAME).description("The name of this configuration"), fieldWithPath(PROPERTY_PRODUCTIDENTIFIER).description("Executor product identifier"), fieldWithPath(PROPERTY_EXECUTORVERSION).description("Executor version"), fieldWithPath(PROPERTY_ENABLED).description("Enabled state of executor").optional(), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_BASEURL).description("Base URL to the product"), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS + "." + ProductExecutorConfigSetupCredentials.PROPERTY_USER).description(CREDENTIALS_USER_DESCRIPTION), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS + "." + ProductExecutorConfigSetupCredentials.PROPERTY_PASSWORD).description(CREDENTIALS_PWD_DESCRIPTION), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS + "[]." + ProductExecutorConfigSetupJobParameter.PROPERTY_KEY).description(JOBPARAM_KEY_DESCRIPTION).optional(), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS + "[]." + ProductExecutorConfigSetupJobParameter.PROPERTY_VALUE).description(JOBPARAM_VALUE_DESCRIPTION).optional()), pathParameters(parameterWithName(UUID_PARAMETER.paramName()).description("The configuration uuid"))));
/* @formatter:on */
}
use of com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig in project sechub by mercedes-benz.
the class ProductExecutorConfigRestControllerRestDocTest method restdoc_admin_updates_executor_config.
@Test
@UseCaseRestDoc(useCase = UseCaseAdminUpdatesExecutorConfig.class)
public void restdoc_admin_updates_executor_config() throws Exception {
/* prepare */
String apiEndpoint = https(PORT_USED).buildAdminUpdatesProductExecutorConfig(UUID_PARAMETER.pathElement());
Class<? extends Annotation> useCase = UseCaseAdminUpdatesExecutorConfig.class;
UUID randomUUID = UUID.randomUUID();
TestExecutorConfig configFromUser = new TestExecutorConfig();
configFromUser.enabled = false;
configFromUser.name = "New name";
configFromUser.productIdentifier = ProductIdentifier.PDS_CODESCAN.name();
configFromUser.executorVersion = 1;
configFromUser.setup.baseURL = "https://productNew.example.com";
configFromUser.setup.credentials.user = "env:EXAMPLE_NEW_USENAME";
configFromUser.setup.credentials.password = "env:EXAMPLE_NEW_PASSWORD";
TestExecutorSetupJobParam param1 = new TestExecutorSetupJobParam("example.key1", "A value but changed. Remark: the other parameter (example.key2) has been removed by this call");
configFromUser.setup.jobParameters.add(param1);
/* execute + test @formatter:off */
this.mockMvc.perform(put(apiEndpoint, randomUUID).contentType(MediaType.APPLICATION_JSON_VALUE).content(JSONConverter.get().toJSON(configFromUser))).andExpect(status().isOk()).andDo(defineRestService().with().useCaseData(useCase).tag(RestDocFactory.extractTag(apiEndpoint)).requestSchema(OpenApiSchema.EXECUTOR_CONFIGURATION.getSchema()).and().document(requestFields(fieldWithPath(PROPERTY_NAME).description("The name of this configuration"), fieldWithPath(PROPERTY_PRODUCTIDENTIFIER).description("Executor product identifier"), fieldWithPath(PROPERTY_EXECUTORVERSION).description("Executor version"), fieldWithPath(PROPERTY_ENABLED).description("Enabled state of executor, per default false").optional(), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_BASEURL).description("Base URL to the product"), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS + "." + ProductExecutorConfigSetupCredentials.PROPERTY_USER).description(CREDENTIALS_USER_DESCRIPTION), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_CREDENTIALS + "." + ProductExecutorConfigSetupCredentials.PROPERTY_PASSWORD).description(CREDENTIALS_PWD_DESCRIPTION), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS + "[]." + ProductExecutorConfigSetupJobParameter.PROPERTY_KEY).description(JOBPARAM_KEY_DESCRIPTION).optional(), fieldWithPath(PROPERTY_SETUP + "." + ProductExecutorConfigSetup.PROPERTY_JOBPARAMETERS + "[]." + ProductExecutorConfigSetupJobParameter.PROPERTY_VALUE).description(JOBPARAM_VALUE_DESCRIPTION).optional()), pathParameters(parameterWithName(UUID_PARAMETER.paramName()).description("The configuration uuid"))));
/* @formatter:on */
}
use of com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig in project sechub by mercedes-benz.
the class CreateNewPDSExecutionConfigurationAction method handleExamples.
@Override
protected void handleExamples(CreatePDSData data, PDSAdministration pds) {
TestExecutorConfig config = new TestExecutorConfig();
config.executorVersion = 1;
config.productIdentifier = pds.findProductIdentifier(data.serverConfig, data.productId).name();
config.setup.baseURL = pds.getUrlBuilder().buildBaseURL();
config.setup.credentials.user = "env:EXAMPLE_USER_CHANGEME";
config.setup.credentials.password = "env:EXAMPLE_PASSWORD_CHANGEME";
ExecutorConfigDialogUI ui = new ExecutorConfigDialogUI(getContext(), "Create NEW PDS executor config", config) {
@Override
protected String resolveInitialJobParamsAsString() {
// we override this to have initial all comments inside...
return data.jobParametersAsString;
}
};
ui.showDialog();
if (!ui.isOkPressed()) {
return;
}
UUID uuid = getContext().getAdministration().createExecutorConfig(ui.getUpdatedConfig());
outputAsTextOnSuccess("executor config created with uuid:" + uuid);
}
Aggregations