Search in sources :

Example 1 with TestExecutionProfile

use of com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile 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 */
}
Also used : TestExecutionProfile(com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile) TestExecutorConfig(com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig) UUID(java.util.UUID) UseCaseAdminUpdatesExecutionProfile(com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminUpdatesExecutionProfile) UseCaseRestDoc(com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseRestDoc) WebMvcTest(org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest) Test(org.junit.Test)

Example 2 with TestExecutionProfile

use of com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile in project sechub by mercedes-benz.

the class ProductExecutionProfileRestControllerRestDocTest method restdoc_admin_creates_profile.

@Test
@UseCaseRestDoc(useCase = UseCaseAdminCreatesExecutionProfile.class)
public void restdoc_admin_creates_profile() throws Exception {
    /* prepare */
    String apiEndpoint = https(PORT_USED).buildAdminCreatesProductExecutionProfile(PROFILE_ID.pathElement());
    Class<? extends Annotation> useCase = UseCaseAdminCreatesExecutionProfile.class;
    String profileId = "new-profile-1";
    TestExecutionProfile profile = new TestExecutionProfile();
    profile.description = "a short description for profile";
    profile.enabled = false;
    /* execute + test @formatter:off */
    this.mockMvc.perform(post(apiEndpoint, profileId).contentType(MediaType.APPLICATION_JSON_VALUE).content(JSONConverter.get().toJSON(profile))).andExpect(status().isCreated()).andDo(defineRestService().with().useCaseData(useCase).tag(RestDocFactory.extractTag(apiEndpoint)).requestSchema(OpenApiSchema.EXECUTION_PROFILE_CREATE.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 + "[]").description("Configurations can be linked at creation time as well - see update description").optional(), fieldWithPath(PROPERTY_PROJECT_IDS + "[]").description("Projects can be linked by their ids at creation time as well - see update description").optional()), pathParameters(parameterWithName(PROFILE_ID.paramName()).description("The profile id"))));
/* @formatter:on */
}
Also used : TestExecutionProfile(com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile) UseCaseAdminCreatesExecutionProfile(com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminCreatesExecutionProfile) UseCaseRestDoc(com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseRestDoc) WebMvcTest(org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest) Test(org.junit.Test)

Example 3 with TestExecutionProfile

use of com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile 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 */
}
Also used : TestExecutionProfile(com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile) ProductExecutionProfile(com.mercedesbenz.sechub.domain.scan.product.config.ProductExecutionProfile) TestExecutorConfig(com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig) TestExecutorSetupJobParam(com.mercedesbenz.sechub.test.executorconfig.TestExecutorSetupJobParam) UUID(java.util.UUID) UseCaseAdminFetchesExecutionProfile(com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminFetchesExecutionProfile) UseCaseRestDoc(com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseRestDoc) WebMvcTest(org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest) Test(org.junit.Test)

Example 4 with TestExecutionProfile

use of com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile in project sechub by mercedes-benz.

the class TestAPI method reConnectStaticDataWithDatabaseContent.

private static void reConnectStaticDataWithDatabaseContent(TestExecutionProfile profile) {
    if (profile.configurations.isEmpty()) {
        LOG.info("reconnecting static data with existing database content of profiles");
        TestExecutionProfile profile2 = as(SUPER_ADMIN).fetchProductExecutionProfile(profile.id);
        profile.configurations.addAll(profile2.configurations);
        profile.enabled = profile2.enabled;
    }
    as(SUPER_ADMIN).ensureExecutorConfigUUIDs();
}
Also used : TestExecutionProfile(com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile) DefaultTestExecutionProfile(com.mercedesbenz.sechub.integrationtest.internal.DefaultTestExecutionProfile)

Example 5 with TestExecutionProfile

use of com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile in project sechub by mercedes-benz.

the class ProductExecutionProfileScenario7IntTest method sanity_check_remove_projects_implemented_correct_for_daui.

/* @formatter:off */
@Test
public void sanity_check_remove_projects_implemented_correct_for_daui() {
    /* prepare */
    String profileId = "test-profile-to-delete9";
    dropExecutionProfileIfExisting(profileId);
    profileData = new TestExecutionProfile();
    profileData.description = "test9";
    TestExecutorConfig config = new TestExecutorConfig();
    config.name = "config1";
    config.executorVersion = 33;
    config.productIdentifier = "PDS_WEBSCAN";
    config.setup.baseURL = "";
    UUID uuid1 = as(SUPER_ADMIN).createProductExecutorConfig(config);
    config.name = "config2";
    UUID uuid2 = as(SUPER_ADMIN).createProductExecutorConfig(config);
    config.name = "config3";
    UUID uuid3 = as(SUPER_ADMIN).createProductExecutorConfig(config);
    as(SUPER_ADMIN).createProductExecutionProfile(profileId, profileData).addConfigurationToProfile(profileId, uuid1, uuid2, uuid3).addProjectIdsToProfile(profileId, "p1", "p2", "p3");
    /* check preconditions */
    assertProfile(profileId).hasConfigurations(uuid1, uuid2, uuid3).hasProjectIds("p1", "p2", "p3");
    /* execute */
    as(SUPER_ADMIN).removeConfigurationFromProfile(profileId, uuid1, uuid3);
    as(SUPER_ADMIN).removeProjectIdsFromProfile(profileId, "p1", "p3");
    /* test */
    assertProfile(profileId).hasConfigurations(uuid2).hasProjectIds("p2");
}
Also used : TestExecutionProfile(com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile) TestExecutorConfig(com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig) UUID(java.util.UUID) Test(org.junit.Test)

Aggregations

TestExecutionProfile (com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfile)25 TestExecutorConfig (com.mercedesbenz.sechub.test.executorconfig.TestExecutorConfig)14 Test (org.junit.Test)14 UUID (java.util.UUID)12 TestProject (com.mercedesbenz.sechub.integrationtest.api.TestProject)3 UseCaseRestDoc (com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseRestDoc)3 WebMvcTest (org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest)3 DeveloperAdministration (com.mercedesbenz.sechub.developertools.admin.DeveloperAdministration)2 ProductExecutionProfile (com.mercedesbenz.sechub.domain.scan.product.config.ProductExecutionProfile)1 DefaultTestExecutionProfile (com.mercedesbenz.sechub.integrationtest.internal.DefaultTestExecutionProfile)1 UseCaseAdminCreatesExecutionProfile (com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminCreatesExecutionProfile)1 UseCaseAdminFetchesExecutionProfile (com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminFetchesExecutionProfile)1 UseCaseAdminUpdatesExecutionProfile (com.mercedesbenz.sechub.sharedkernel.usecases.admin.config.UseCaseAdminUpdatesExecutionProfile)1 TestExecutionProfileList (com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfileList)1 TestExecutionProfileListEntry (com.mercedesbenz.sechub.test.executionprofile.TestExecutionProfileListEntry)1 TestExecutorSetupJobParam (com.mercedesbenz.sechub.test.executorconfig.TestExecutorSetupJobParam)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 LinkedHashSet (java.util.LinkedHashSet)1