public void testParameterGroupOperations()

in services/elasticache/src/it/java/software/amazon/awssdk/services/elasticache/ParameterGroupsIntegrationTest.java [65:142]


    public void testParameterGroupOperations() throws Exception {

        // Describe Engine Default Parameters
        EngineDefaults engineDefaults = elasticache
                .describeEngineDefaultParameters(
                        DescribeEngineDefaultParametersRequest.builder().cacheParameterGroupFamily(CACHE_PARAMETER_GROUP_FAMILY)
                                                              .build()).engineDefaults();
        assertTrue(engineDefaults.cacheNodeTypeSpecificParameters().size() > 0);
        CacheNodeTypeSpecificParameter cacheNodeParameter = engineDefaults.cacheNodeTypeSpecificParameters().get(0);
        assertNotEmpty(cacheNodeParameter.parameterName());
        assertTrue(cacheNodeParameter.cacheNodeTypeSpecificValues().size() > 0);
        assertEquals(CACHE_PARAMETER_GROUP_FAMILY, engineDefaults.cacheParameterGroupFamily());
        assertTrue(engineDefaults.parameters().size() > 0);
        Parameter parameter = engineDefaults.parameters().get(0);
        assertNotEmpty(parameter.parameterName());
        assertNotEmpty(parameter.parameterValue());


        // Create Cache Parameter Group
        cacheParameterGroupName = "java-sdk-integ-test-" + System.currentTimeMillis();
        CacheParameterGroup cacheParameterGroup = elasticache.createCacheParameterGroup(
                CreateCacheParameterGroupRequest.builder().cacheParameterGroupName(cacheParameterGroupName)
                                                .cacheParameterGroupFamily(CACHE_PARAMETER_GROUP_FAMILY).description(DESCRIPTION)
                                                .build()).cacheParameterGroup();
        assertEquals(CACHE_PARAMETER_GROUP_FAMILY, cacheParameterGroup.cacheParameterGroupFamily());
        assertEquals(cacheParameterGroupName, cacheParameterGroup.cacheParameterGroupName());
        assertEquals(DESCRIPTION, cacheParameterGroup.description());


        // Describe Cache Parameters
        DescribeCacheParametersResponse describeCacheParameters =
                elasticache.describeCacheParameters(
                        DescribeCacheParametersRequest.builder().cacheParameterGroupName(cacheParameterGroupName).build());
        assertTrue(describeCacheParameters.cacheNodeTypeSpecificParameters().size() > 0);
        cacheNodeParameter = describeCacheParameters.cacheNodeTypeSpecificParameters().get(0);
        assertNotEmpty(cacheNodeParameter.parameterName());
        assertTrue(cacheNodeParameter.cacheNodeTypeSpecificValues().size() > 0);
        assertTrue(describeCacheParameters.parameters().size() > 0);
        parameter = describeCacheParameters.parameters().get(0);
        assertNotEmpty(parameter.parameterName());
        assertNotEmpty(parameter.parameterValue());


        // Modify Cache Parameter Group
        List<ParameterNameValue> paramsToModify = new ArrayList<ParameterNameValue>();
        paramsToModify.add(ParameterNameValue.builder().parameterName("max_item_size").parameterValue("100000").build());
        ModifyCacheParameterGroupResponse modifyCacheParameterGroup = elasticache
                .modifyCacheParameterGroup(
                        ModifyCacheParameterGroupRequest.builder().cacheParameterGroupName(cacheParameterGroupName)
                                                        .parameterNameValues(paramsToModify).build());
        assertEquals(cacheParameterGroupName, modifyCacheParameterGroup.cacheParameterGroupName());


        // Reset Cache Parameter Group
        List<ParameterNameValue> paramsToReset = new ArrayList<ParameterNameValue>();
        paramsToReset.add(ParameterNameValue.builder().parameterName("binding_protocol").build());
        ResetCacheParameterGroupResponse resetCacheParameterGroup =
                elasticache.resetCacheParameterGroup(
                        ResetCacheParameterGroupRequest.builder().cacheParameterGroupName(cacheParameterGroupName)
                                                       .parameterNameValues(paramsToReset).build());
        assertEquals(cacheParameterGroupName, resetCacheParameterGroup.cacheParameterGroupName());


        // Describe Cache Parameter Groups
        DescribeCacheParameterGroupsResponse describeCacheParameterGroups =
                elasticache.describeCacheParameterGroups(
                        DescribeCacheParameterGroupsRequest.builder().cacheParameterGroupName(cacheParameterGroupName).build());
        assertEquals(1, describeCacheParameterGroups.cacheParameterGroups().size());
        CacheParameterGroup parameterGroup = describeCacheParameterGroups.cacheParameterGroups().get(0);
        assertEquals(CACHE_PARAMETER_GROUP_FAMILY, parameterGroup.cacheParameterGroupFamily());
        assertEquals(cacheParameterGroupName, parameterGroup.cacheParameterGroupName());
        assertEquals(DESCRIPTION, parameterGroup.description());


        // Delete Cache Parameter Group
        elasticache.deleteCacheParameterGroup(
                DeleteCacheParameterGroupRequest.builder().cacheParameterGroupName(cacheParameterGroupName).build());
    }