All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.nominanuda.store.redis.RedisMock Maven / Gradle / Ivy

The newest version!
package com.nominanuda.store.redis;

import static java.util.Arrays.*;

import java.util.*;

public class RedisMock extends Redis {

	public RedisMock() {
		super("localhost", 6379);
	}

	private Map keys = new HashMap();

	@Override
	public Integer append(String key, String value)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, "");
		}
		String currentValue = (String) keys.get(key);
		String newValue = currentValue.concat(value);
		keys.put(key, newValue);
		return newValue.length();
	}

	@Override
	public String auth(String password)
	{
		return null;
	}

	@Override
	public String bgrewriteaof()
	{
		return null;
	}

	@Override
	public String bgsave()
	{
		return null;
	}

	@Override
	public List blpop(String key, int timeout)
	{
		return asList(key, lpop(key));
	}

	@Override
	public List blpop(String[] keys, int timeout)
	{
		for (String key : keys) {
			String value = lpop(key);
			if (null != value) return asList(key, value);
		}
		return null;
	}

	@Override
	public List brpop(String key, int timeout)
	{
		return asList(key, rpop(key));
	}

	@Override
	public List brpop(String[] keys, int timeout)
	{
		for (String key : keys) {
			String value = rpop(key);
			if (null != value) return asList(key, value);
		}
		return null;
	}

	@Override
	public String brpoplpush(String source, String destination, String timeout)
	{
		return rpoplpush(source, destination);
	}

	@Override
	public Integer dbsize()
	{
		return null;
	}

	@Override
	public Integer decr(String key)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, "0");
		}
		String value = (String) keys.get(key);
		int newValue = Integer.valueOf(value);
		newValue--;
		keys.put(key, newValue);
		return newValue;
	}

	@Override
	public Integer decrby(String key, String decrement)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, "0");
		}
		String value = (String) keys.get(key);
		int newValue = Integer.valueOf(value);
		newValue -= Integer.valueOf(decrement);
		keys.put(key, newValue);
		return newValue;
	}

	@Override
	public Integer del(String key)
	{
		if (!keys.containsKey(key)) return 0;
		keys.remove(key);
		return 1;
	}

	@Override
	public Integer del(String[] keys)
	{
		int result = 0;
		for (String key : keys) {
			result += del(key);
		}
		return result;
	}

	@Override
	public String discard()
	{
		return null;
	}

	@Override
	public String echo(String message)
	{
		return null;
	}

	@Override
	public List exec()
	{
		return null;
	}

	@Override
	public Integer exists(String key)
	{
		return keys.containsKey(key) ? 1 : 0;
	}

	@Override
	public Integer expire(String key, String seconds)
	{
		return null;
	}

	@Override
	public Integer expireat(String key, String timestamp)
	{
		return null;
	}

	@Override
	public String flushall()
	{
		return null;
	}

	@Override
	public String flushdb()
	{
		return null;
	}

	@Override
	public String get(String key)
	{
		if (keys.containsKey(key)) return (String) keys.get(key);
		return null;
	}

	@Override
	public Integer getbit(String key, String offset)
	{
		return null;
	}

	@Override
	public String getrange(String key, String start, String end)
	{
		return null;
	}

	@Override
	public String getset(String key, String value)
	{
		return null;
	}

	@Override
	public Integer hdel(String key, String field)
	{
		int result = 0;
		if (!keys.containsKey(key)) return result;
		Map map = (Map) keys.get(key);
		result = map.containsKey(field) ? 1 : 0;
		map.remove(field);
		return result;
	}

	@Override
	public Integer hdel(String key, String[] fields)
	{
		int result = 0;
		if (!keys.containsKey(key)) return result;
		for (String field : fields) {
			result += hdel(key, field);
		}
		return result;
	}

	@Override
	public Integer hexists(String key, String field)
	{
		return null;
	}

	@Override
	public String hget(String key, String field)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new HashMap());
		}
		Map map = (Map) keys.get(key);
		if (!map.containsKey(field)) return null;
		return (String) map.get(field);
	}

	@Override
	public List hgetall(String key)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) return result;
		Map map = (Map) keys.get(key);
		for (String field : (Set) map.keySet()) {
			result.add(field);
			result.add((String) map.get(field));
		}
		return result;
	}

	@Override
	public Integer hincrby(String key, String field, String increment)
	{
		return null;
	}

	@Override
	public String hincrbyfloat(String key, String field, String increment)
	{
		return null;
	}

	@Override
	public List hkeys(String key)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) return result;
		Map map = (Map) keys.get(key);
		result.addAll(map.keySet());
		return result;
	}

	@Override
	public Integer hlen(String key)
	{
		return null;
	}

	@Override
	public List hmget(String key, String field)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) return result;
		Map map = (Map) keys.get(key);
		if (map.containsKey(field)) {
			result.add((String) map.get(field));
		}
		return result;
	}

	@Override
	public List hmget(String key, String[] fields)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) return result;
		Map map = (Map) keys.get(key);
		for (String field : fields) {
			if (map.containsKey(field)) {
				result.add((String) map.get(field));
			}
		}
		return result;
	}

	@Override
	public String hmset(String key, String field, String value)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new HashMap());
		}
		Map map = (Map) keys.get(key);
		map.put(field, value);
		return "OK";
	}

	@Override
	public String hmset(String key, String[] fieldValues)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new HashMap());
		}
		Map map = (Map) keys.get(key);
		for (int i = 0; i < fieldValues.length; i += 2) {
			map.put(fieldValues[i], fieldValues[i + 1]);
		}
		return "OK";
	}

	@Override
	public Integer hset(String key, String field, String value)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new HashMap());
		}
		Map map = (Map) keys.get(key);
		int result = !map.containsKey(field) ? 1 : 0;
		map.put(field, value);
		return result;
	}

	@Override
	public Integer hsetnx(String key, String field, String value)
	{
		return null;
	}

	@Override
	public List hvals(String key)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) {
			return result;
		}
		Map map = (Map) keys.get(key);
		result.addAll(map.values());
		return result;
	}

	@Override
	public Integer incr(String key)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, "0");
		}
		String value = (String) keys.get(key);
		int newValue = Integer.valueOf(value);
		newValue++;
		keys.put(key, newValue);
		return newValue;
	}

	@Override
	public Integer incrby(String key, String increment)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, "0");
		}
		String value = (String) keys.get(key);
		int newValue = Integer.valueOf(value);
		newValue += Integer.valueOf(increment);
		keys.put(key, newValue);
		return newValue;
	}

	@Override
	public String incrbyfloat(String key, String increment)
	{
		return null;
	}

	@Override
	public String info()
	{
		return null;
	}

	@Override
	public List keys(String pattern)
	{
		List result = new LinkedList();
		for (String key : keys.keySet()) {
			String regex = pattern.replaceAll("\\*", ".*");
			if (key.matches(regex)) result.add(key);
		}
		return result;
	}

	@Override
	public Integer lastsave()
	{
		return null;
	}

	@Override
	public List lindex(String key, String index)
	{
		return null;
	}

	@Override
	public Integer llen(String key)
	{
		return null;
	}

	@Override
	public String lpop(String key)
	{
		if (!keys.containsKey(key)) return null;
		List list = (List) keys.get(key);
		if (list.isEmpty()) return null;
		return list.remove(0);
	}

	@Override
	public Integer lpush(String key, String value)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new LinkedList());
		}
		List list = (List) keys.get(key);
		list.add(0, value);
		return list.size();
	}

	@Override
	public Integer lpush(String key, String[] values)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new LinkedList());
		}
		List list = (List) keys.get(key);
		for (String value : values) {
			list.add(0, value);
		}
		return list.size();
	}

	@Override
	public Integer lpushx(String key, String value)
	{
		if (keys.containsKey(key)) return 0;
		List list = (List) keys.get(key);
		list.add(0, value);
		return list.size();
	}

	@Override
	public List lrange(String key, String start, String stop)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) return result;
		List list = (List) keys.get(key);
		int b = Integer.valueOf(start).intValue();
		int e = Integer.valueOf(stop).intValue();
		if (e >= list.size()) e = list.size() - 1;
		for (int i = b; i <= e; i++) {
			result.add((String) list.get(i));
		}
		return result;
	}

	@Override
	public Integer lrem(String key, String count, String value)
	{
		if (!keys.containsKey(key)) return 0;
		int c = Integer.valueOf(count);
		List list = (List) keys.get(key);
		if (c < 0) {
			List toRemove = new LinkedList();
			for (int i = list.size() - 1; c > 0 && i >= 0; i--, c--) {
				String aValue = list.get(0);
				if (value.equals(aValue)) toRemove.add(aValue);
			}
			list.removeAll(toRemove);
			return toRemove.size();
		} else if (c == 0) {
			List toRemove = new LinkedList();
			for (int i = 0; i < list.size(); i++) {
				String aValue = list.get(0);
				if (value.equals(aValue)) toRemove.add(aValue);
			}
			list.removeAll(toRemove);
			return toRemove.size();
		} else if (c > 0) {
			List toRemove = new LinkedList();
			for (int i = 0; c > 0 && i < list.size(); i++, c--) {
				String aValue = list.get(0);
				if (value.equals(aValue)) toRemove.add(aValue);
			}
			list.removeAll(toRemove);
			return toRemove.size();
		}
		return null;
	}

	@Override
	public String lset(String key, String index, String value)
	{
		return null;
	}

	@Override
	public String ltrim(String key, String start, String stop)
	{
		return null;
	}

	@Override
	public List mget(String[] keys)
	{
		List result = new LinkedList();
		for (String key : keys) {
			result.add(get(key));
		}
		return result;
	}

	@Override
	public String migrate(String host, String port, String key, String destinationdb, String timeout)
	{
		return null;
	}

	@Override
	public Integer move(String key, String db)
	{
		return null;
	}

	@Override
	public String mset(String key, String value)
	{
		return null;
	}

	@Override
	public String msetnx(String key, String value)
	{
		return null;
	}

	@Override
	public String msetnx(String[] keyValues)
	{
		return null;
	}

	@Override
	public String multi()
	{
		return null;
	}

	@Override
	public Integer persist(String key)
	{
		return null;
	}

	@Override
	public Integer pexpire(String key, String milliseconds)
	{
		return null;
	}

	@Override
	public Integer pexpireat(String key, String millisecondtimestamp)
	{
		return null;
	}

	@Override
	public String ping()
	{
		return "PONG";
	}

	@Override
	public String psetex(String key, String milliseconds, String value)
	{
		return null;
	}

	@Override
	public Integer pttl(String key)
	{
		return null;
	}

	@Override
	public Integer publish(String channel, String message)
	{
		return null;
	}

	@Override
	public String quit()
	{
		return null;
	}

	@Override
	public String randomkey()
	{
		return null;
	}

	@Override
	public Integer rename(String key, String newkey)
	{
		return null;
	}

	@Override
	public String renamenx(String key, String newkey)
	{
		return null;
	}

	@Override
	public String restore(String key, String ttl, String serializedvalue)
	{
		return null;
	}

	@Override
	public String rpop(String key)
	{
		if (!keys.containsKey(key)) return null;
		List list = (List) keys.get(key);
		if (list.isEmpty()) return null;
		String value = list.remove(list.size() - 1);
		return value;
	}

	@Override
	public String rpoplpush(String source, String destination)
	{
		String value = rpop(source);
		if (value == null) return null;
		lpush(destination, value);
		return value;
	}

	@Override
	public Integer rpush(String key, String value)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new LinkedList());
		}
		List list = (List) keys.get(key);
		list.add(value);
		return list.size();
	}

	@Override
	public Integer rpush(String key, String[] values)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new LinkedList());
		}
		List list = (List) keys.get(key);
		for (String value : values) {
			list.add(value);
		}
		return list.size();
	}

	@Override
	public Integer rpushx(String key, String value)
	{
		return null;
	}

	@Override
	public Integer sadd(String key, String member)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new HashSet());
		}
		Set set = (Set) keys.get(key);
		set.add(member);
		return set.size();
	}

	@Override
	public Integer sadd(String key, String[] members)
	{
		if (!keys.containsKey(key)) {
			keys.put(key, new HashSet());
		}
		Set set = (Set) keys.get(key);
		for (String member : members) {
			set.add(member);
		}
		return set.size();
	}

	@Override
	public String save()
	{
		return null;
	}

	@Override
	public Integer scard(String key)
	{
		if (!keys.containsKey(key)) return 0;
		Set set = (Set) keys.get(key);
		return set.size();
	}

	@Override
	public List sdiff(String key)
	{
		return null;
	}

	@Override
	public List sdiff(String key, String[] values)
	{
		return null;
	}

	@Override
	public Integer sdiffstore(String destination, String[] keys)
	{
		return null;
	}

	@Override
	public String select(String index)
	{
		return null;
	}

	@Override
	public String set(String key, String value)
	{
		keys.put(key, value);
		return "OK";
	}

	@Override
	public Integer setbit(String key, String offset, String value)
	{
		return null;
	}

	@Override
	public String setex(String key, String seconds, String value)
	{
		return null;
	}

	@Override
	public Integer setnx(String key, String value)
	{
		return null;
	}

	@Override
	public Integer setrange(String key, String offset, String value)
	{
		return null;
	}

	@Override
	public List sinter(String key)
	{
		return null;
	}

	@Override
	public List sinter(String[] keys)
	{
		return null;
	}

	@Override
	public Integer sinterstore(String destination, String[] keys)
	{
		return null;
	}

	@Override
	public Integer sismember(String key, String member)
	{
		if (!keys.containsKey(key)) return 0;
		Set set = (Set) keys.get(key);
		return set.contains(member) ? 1 : 0;
	}

	@Override
	public String slaveof(String host, String port)
	{
		return null;
	}

	@Override
	public List smembers(String key)
	{
		List result = new LinkedList();
		if (!keys.containsKey(key)) return result;
		Set set = (Set) keys.get(key);
		result.addAll(set);
		return result;
	}

	@Override
	public Integer smove(String source, String destination, String member)
	{
		return null;
	}

	@Override
	public List sort(String key)
	{
		List result = new LinkedList();
		if (keys.containsKey(key)) {
			result.addAll((Set) keys.get(key));
		}
		return result;
	}

	@Override
	public String spop(String key)
	{
		return null;
	}

	@Override
	public String srandmember(String key)
	{
		return null;
	}

	@Override
	public Integer srem(String key, String member)
	{
		if (!keys.containsKey(key)) return 0;
		Set set = (Set) keys.get(key);
		if (!set.contains(member)) return 0;
		set.remove(member);
		return 1;
	}

	@Override
	public Integer srem(String key, String[] members)
	{
		int result = 0;
		for (String member : members) {
			result += srem(key, member);
		}
		return result;
	}

	@Override
	public Integer strlen(String key)
	{
		return null;
	}

	@Override
	public List sunion(String key)
	{
		return null;
	}

	@Override
	public List sunion(String[] keys)
	{
		return null;
	}

	@Override
	public List sunionstore(String destination, String[] keys)
	{
		return null;
	}

	@Override
	public List time()
	{
		return null;
	}

	@Override
	public Integer ttl(String key)
	{
		return null;
	}

	@Override
	public String type(String key)
	{
		return null;
	}

	@Override
	public String unwatch()
	{
		return null;
	}

	@Override
	public String watch(String key)
	{
		return null;
	}

	@Override
	public String watch(String[] keys)
	{
		return null;
	}

	@Override
	public Integer zadd(String key, String score, String member)
	{
		return null;
	}

	@Override
	public Integer zcard(String key)
	{
		return null;
	}

	@Override
	public Integer zcount(String key, String min, String max)
	{
		return null;
	}

	@Override
	public String zincrby(String key, String increment, String member)
	{
		return null;
	}

	@Override
	public List zrange(String key, String start, String stop)
	{
		return null;
	}

	@Override
	public List zrangebyscore(String key, String min, String max)
	{
		return null;
	}

	@Override
	public Integer zrank(String key, String member)
	{
		return null;
	}

	@Override
	public Integer zrem(String key, String member)
	{
		return null;
	}

	@Override
	public Integer zrem(String key, String[] members)
	{
		return null;
	}

	@Override
	public Integer zremrangebyrank(String key, String start, String stop)
	{
		return null;
	}

	@Override
	public Integer zremrangebyscore(String key, String min, String max)
	{
		return null;
	}

	@Override
	public List zrevrange(String key, String start, String stop)
	{
		return null;
	}

	@Override
	public List zrevrangebyscore(String key, String max, String min)
	{
		return null;
	}

	@Override
	public Integer zrevrank(String key, String member)
	{
		return null;
	}

	@Override
	public String zscore(String key, String member)
	{
		return null;
	}

	@Override
	public Integer zunionstore(String destination, String numkeys, String key)
	{
		return null;
	}

	@Override
	public Integer zunionstore(String destination, int numkeys, String[] keys)
	{
		return null;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy