Package com.springsource.insight.plugin.redis

Source Code of com.springsource.insight.plugin.redis.RedisMapOperationCollectionAspectTest

/**
* Copyright (c) 2009-2011 VMware, Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*         http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.springsource.insight.plugin.redis;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;
import org.springframework.data.redis.support.collections.RedisMap;

import com.springsource.insight.collection.OperationCollectionAspectSupport;
import com.springsource.insight.collection.test.OperationCollectionAspectTestSupport;
import com.springsource.insight.intercept.operation.Operation;
import com.springsource.insight.intercept.operation.OperationType;

/**
* Test for RedisMap operation collection aspect.
*/
public class RedisMapOperationCollectionAspectTest extends OperationCollectionAspectTestSupport {

    private static final String kw_key = "key";
    private static final String kw_value = "value";
    private static final String kw_size = "size";

    public RedisMapOperationCollectionAspectTest() {
        super();
    }

    @Test
    public void putAndCollect() {
        String method = "put";
        String key = "key1";
        String value = "value1";

        new DummyRedisMapImpl<String, String>().put(key, value);

        Operation op = standardAsserts(method);
        mapEntrysetAsserts(op, method, key, value);
    }

    @Test
    public void putIfAbsentAndCollect() {
        String method = "putIfAbsent";
        String key = "key2";
        String value = "value2";

        new DummyRedisMapImpl<String, String>().putIfAbsent(key, value);
        standardAsserts(method);
        Operation op = standardAsserts(method);
        mapEntrysetAsserts(op, method, key, value);
    }

    @Test
    public void putAllAndCollect() {
        String method = "putAll";
        String key = "key3";
        String value = "value3";

        Map<String, String> testMap = new HashMap<String, String>();
        testMap.put(key, value);
        new DummyRedisMapImpl<String, String>().putAll(testMap);
        Operation op = standardAsserts(method);
        mapSizeAsserts(op, method, 1);
    }

    @Test
    public void getAndCollect() {
        String method = "get";
        String key = "key2";

        RedisMap<String, String> map = new DummyRedisMapImpl<String, String>();
        map.get(key);

        standardAsserts(method);
        Operation op = standardAsserts(method);
        mapKeyAsserts(op, method, key);
    }

    @Test
    public void replaceAndCollect() {
        String method = "replace";
        String key = "key2";
        String value = "value2";
        String newValue = "newValue";

        RedisMap<String, String> map = new DummyRedisMapImpl<String, String>();
        map.replace(key, value, newValue);

        standardAsserts(method);
        Operation op = standardAsserts(method);
        mapEntrysetAsserts(op, method, key, value);
    }

    @Test
    public void removeAndCollect() {
        String method = "remove";
        String key = "key2";

        RedisMap<String, String> map = new DummyRedisMapImpl<String, String>();
        map.remove(key);

        standardAsserts(method);
        Operation op = standardAsserts(method);
        mapKeyAsserts(op, method, key);
    }

    @Override
    public OperationCollectionAspectSupport getAspect() {
        return RedisMapOperationCollectionAspect.aspectOf();
    }

    private Operation standardAsserts(String method) {
        Operation op = getLastEntered();
        assertEquals("RedisMap: ?." + method + "()", op.getLabel());
        assertEquals(OperationType.valueOf("redis-map"), op.getType());
        return op;
    }

    private Operation mapEntrysetAsserts(Operation op, String method, String key, String value) {
        assertEquals(String.format("Map.%s: key", method, key), key, op.get(kw_key));
        assertEquals(String.format("Map.%s: value of key '%s'", method, key), value, op.get(kw_value));
        return op;
    }

    private Operation mapKeyAsserts(Operation op, String method, String key) {
        assertEquals(String.format("Map.%s: key", method, key), key, op.get(kw_key));
        return op;
    }

    private Operation mapSizeAsserts(Operation op, String method, int size) {
        assertEquals(String.format("Map.%s: size", method), size, op.getInt(kw_size, (-1)));
        return op;
    }
}
TOP

Related Classes of com.springsource.insight.plugin.redis.RedisMapOperationCollectionAspectTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.