package com.sequenceiq.it.cloudbreak.mock; import java.util.HashMap; import java.util.Map; import java.util.UUID; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.StringUtils; import org.testng.Assert; import org.testng.annotations.Optional; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import com.sequenceiq.cloudbreak.api.model.CredentialRequest; import com.sequenceiq.it.cloudbreak.AbstractCloudbreakIntegrationTest; import com.sequenceiq.it.cloudbreak.CloudbreakITContextConstants; import com.sequenceiq.it.util.ResourceUtil; public class MockCredentialCreationTest extends AbstractCloudbreakIntegrationTest { @Value("${integrationtest.mockcredential.name}") private String defaultName; @Value("${integrationtest.mockcredential.publicKeyFile}") private String defaultPublicKeyFile; @Test @Parameters({ "credentialName", "publicKeyFile" }) public void testMockCredentialCreation(@Optional("") String credentialName, @Optional("") String publicKeyFile) throws Exception { // GIVEN credentialName = StringUtils.hasLength(credentialName) ? credentialName : defaultName; CredentialRequest credentialRequest = new CredentialRequest(); credentialRequest.setName(credentialName + UUID.randomUUID()); publicKeyFile = StringUtils.hasLength(publicKeyFile) ? publicKeyFile : defaultPublicKeyFile; String publicKey = ResourceUtil.readStringFromResource(applicationContext, publicKeyFile).replaceAll("\n", ""); credentialRequest.setPublicKey(publicKey); credentialRequest.setDescription("Mock Rm credential for integrationtest"); Map<String, Object> map = new HashMap<>(); map.put("keystoneVersion", "cb-keystone-v2"); map.put("selector", "cb-keystone-v2"); credentialRequest.setParameters(map); credentialRequest.setCloudPlatform("MOCK"); // WHEN String id = getCloudbreakClient().credentialEndpoint().postPrivate(credentialRequest).getId().toString(); // THEN Assert.assertNotNull(id); getItContext().putContextParam(CloudbreakITContextConstants.CREDENTIAL_ID, id, true); } }