package com.sequenceiq.it.cloudbreak.tags; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import com.sequenceiq.cloudbreak.api.endpoint.StackEndpoint; import com.sequenceiq.cloudbreak.api.model.StackResponse; import com.sequenceiq.cloudbreak.client.CloudbreakClient; import com.sequenceiq.it.IntegrationTestContext; import com.sequenceiq.it.cloudbreak.AbstractCloudbreakIntegrationTest; import com.sequenceiq.it.cloudbreak.CloudbreakITContextConstants; public class TagsTest extends AbstractCloudbreakIntegrationTest { private static final Logger LOGGER = LoggerFactory.getLogger(TagsTest.class); @BeforeMethod public void setContextParameters() { Assert.assertNotNull(getItContext().getContextParam(CloudbreakITContextConstants.STACK_ID), "Stack id is mandatory."); Assert.assertNotNull(getItContext().getContextParam(CloudbreakITContextConstants.CLOUDPROVIDER_PARAMETERS, Map.class), "Cloudprovider parameters are mandatory."); } @Test @Parameters({ "tags" }) public void testTagTest(String tags) throws Exception { //GIVEN IntegrationTestContext itContext = getItContext(); String stackId = itContext.getContextParam(CloudbreakITContextConstants.STACK_ID); Map<String, String> cloudProviderParams = itContext.getContextParam(CloudbreakITContextConstants.CLOUDPROVIDER_PARAMETERS, Map.class); StackEndpoint stackEndpoint = itContext.getContextParam(CloudbreakITContextConstants.CLOUDBREAK_CLIENT, CloudbreakClient.class).stackEndpoint(); StackResponse stackResponse = stackEndpoint.get(Long.valueOf(stackId)); Map<String, String> userDefinedTagsStack = TagsUtil.checkTagsStack(stackResponse); Map<String, String> tagsToCheckMap = TagsUtil.getTagsToCheck(tags); //WHEN: The cluster was created with user-defined tags //THEN TagsUtil.checkTags(tagsToCheckMap, userDefinedTagsStack); List<String> instanceIdList = TagsUtil.getInstancesList(stackResponse); TagsUtil.checkTagsWithProvider(stackResponse.getName(), cloudProviderParams, applicationContext, instanceIdList, tagsToCheckMap); } }