Package redis.clients.jedis.tests.commands

Source Code of redis.clients.jedis.tests.commands.HashesCommandsTest

package redis.clients.jedis.tests.commands;

import static redis.clients.jedis.ScanParams.SCAN_POINTER_START;
import static redis.clients.jedis.ScanParams.SCAN_POINTER_START_BINARY;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.Test;

import redis.clients.jedis.Pipeline;
import redis.clients.jedis.Response;
import redis.clients.jedis.ScanParams;
import redis.clients.jedis.ScanResult;

public class HashesCommandsTest extends JedisCommandTestBase {
    final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 };
    final byte[] bbar = { 0x05, 0x06, 0x07, 0x08 };
    final byte[] bcar = { 0x09, 0x0A, 0x0B, 0x0C };

    final byte[] bbar1 = { 0x05, 0x06, 0x07, 0x08, 0x0A };
    final byte[] bbar2 = { 0x05, 0x06, 0x07, 0x08, 0x0B };
    final byte[] bbar3 = { 0x05, 0x06, 0x07, 0x08, 0x0C };
    final byte[] bbarstar = { 0x05, 0x06, 0x07, 0x08, '*' };

    @Test
    public void hset() {
  long status = jedis.hset("foo", "bar", "car");
  assertEquals(1, status);
  status = jedis.hset("foo", "bar", "foo");
  assertEquals(0, status);

  // Binary
  long bstatus = jedis.hset(bfoo, bbar, bcar);
  assertEquals(1, bstatus);
  bstatus = jedis.hset(bfoo, bbar, bfoo);
  assertEquals(0, bstatus);

    }

    @Test
    public void hget() {
  jedis.hset("foo", "bar", "car");
  assertEquals(null, jedis.hget("bar", "foo"));
  assertEquals(null, jedis.hget("foo", "car"));
  assertEquals("car", jedis.hget("foo", "bar"));

  // Binary
  jedis.hset(bfoo, bbar, bcar);
  assertEquals(null, jedis.hget(bbar, bfoo));
  assertEquals(null, jedis.hget(bfoo, bcar));
  assertArrayEquals(bcar, jedis.hget(bfoo, bbar));
    }

    @Test
    public void hsetnx() {
  long status = jedis.hsetnx("foo", "bar", "car");
  assertEquals(1, status);
  assertEquals("car", jedis.hget("foo", "bar"));

  status = jedis.hsetnx("foo", "bar", "foo");
  assertEquals(0, status);
  assertEquals("car", jedis.hget("foo", "bar"));

  status = jedis.hsetnx("foo", "car", "bar");
  assertEquals(1, status);
  assertEquals("bar", jedis.hget("foo", "car"));

  // Binary
  long bstatus = jedis.hsetnx(bfoo, bbar, bcar);
  assertEquals(1, bstatus);
  assertArrayEquals(bcar, jedis.hget(bfoo, bbar));

  bstatus = jedis.hsetnx(bfoo, bbar, bfoo);
  assertEquals(0, bstatus);
  assertArrayEquals(bcar, jedis.hget(bfoo, bbar));

  bstatus = jedis.hsetnx(bfoo, bcar, bbar);
  assertEquals(1, bstatus);
  assertArrayEquals(bbar, jedis.hget(bfoo, bcar));

    }

    @Test
    public void hmset() {
  Map<String, String> hash = new HashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  String status = jedis.hmset("foo", hash);
  assertEquals("OK", status);
  assertEquals("car", jedis.hget("foo", "bar"));
  assertEquals("bar", jedis.hget("foo", "car"));

  // Binary
  Map<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  String bstatus = jedis.hmset(bfoo, bhash);
  assertEquals("OK", bstatus);
  assertArrayEquals(bcar, jedis.hget(bfoo, bbar));
  assertArrayEquals(bbar, jedis.hget(bfoo, bcar));

    }

    @Test
    public void hmget() {
  Map<String, String> hash = new HashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  jedis.hmset("foo", hash);

  List<String> values = jedis.hmget("foo", "bar", "car", "foo");
  List<String> expected = new ArrayList<String>();
  expected.add("car");
  expected.add("bar");
  expected.add(null);

  assertEquals(expected, values);

  // Binary
  Map<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  jedis.hmset(bfoo, bhash);

  List<byte[]> bvalues = jedis.hmget(bfoo, bbar, bcar, bfoo);
  List<byte[]> bexpected = new ArrayList<byte[]>();
  bexpected.add(bcar);
  bexpected.add(bbar);
  bexpected.add(null);

  assertEquals(bexpected, bvalues);
    }

    @Test
    public void hincrBy() {
  long value = jedis.hincrBy("foo", "bar", 1);
  assertEquals(1, value);
  value = jedis.hincrBy("foo", "bar", -1);
  assertEquals(0, value);
  value = jedis.hincrBy("foo", "bar", -10);
  assertEquals(-10, value);

  // Binary
  long bvalue = jedis.hincrBy(bfoo, bbar, 1);
  assertEquals(1, bvalue);
  bvalue = jedis.hincrBy(bfoo, bbar, -1);
  assertEquals(0, bvalue);
  bvalue = jedis.hincrBy(bfoo, bbar, -10);
  assertEquals(-10, bvalue);

    }

    @Test
    public void hincrByFloat() {
  Double value = jedis.hincrByFloat("foo", "bar", 1.5d);
  assertEquals((Double) 1.5d, value);
  value = jedis.hincrByFloat("foo", "bar", -1.5d);
  assertEquals((Double) 0d, value);
  value = jedis.hincrByFloat("foo", "bar", -10.7d);
  assertEquals(Double.compare(-10.7d, value), 0);

  // Binary
  double bvalue = jedis.hincrByFloat(bfoo, bbar, 1.5d);
  assertEquals(Double.compare(1.5d, bvalue), 0);
  bvalue = jedis.hincrByFloat(bfoo, bbar, -1.5d);
  assertEquals(Double.compare(0d, bvalue), 0);
  bvalue = jedis.hincrByFloat(bfoo, bbar, -10.7d);
  assertEquals(Double.compare(-10.7d, value), 0);

    }

    @Test
    public void hexists() {
  Map<String, String> hash = new HashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  jedis.hmset("foo", hash);

  assertFalse(jedis.hexists("bar", "foo"));
  assertFalse(jedis.hexists("foo", "foo"));
  assertTrue(jedis.hexists("foo", "bar"));

  // Binary
  Map<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  jedis.hmset(bfoo, bhash);

  assertFalse(jedis.hexists(bbar, bfoo));
  assertFalse(jedis.hexists(bfoo, bfoo));
  assertTrue(jedis.hexists(bfoo, bbar));

    }

    @Test
    public void hdel() {
  Map<String, String> hash = new HashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  jedis.hmset("foo", hash);

  assertEquals(0, jedis.hdel("bar", "foo").intValue());
  assertEquals(0, jedis.hdel("foo", "foo").intValue());
  assertEquals(1, jedis.hdel("foo", "bar").intValue());
  assertEquals(null, jedis.hget("foo", "bar"));

  // Binary
  Map<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  jedis.hmset(bfoo, bhash);

  assertEquals(0, jedis.hdel(bbar, bfoo).intValue());
  assertEquals(0, jedis.hdel(bfoo, bfoo).intValue());
  assertEquals(1, jedis.hdel(bfoo, bbar).intValue());
  assertEquals(null, jedis.hget(bfoo, bbar));

    }

    @Test
    public void hlen() {
  Map<String, String> hash = new HashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  jedis.hmset("foo", hash);

  assertEquals(0, jedis.hlen("bar").intValue());
  assertEquals(2, jedis.hlen("foo").intValue());

  // Binary
  Map<byte[], byte[]> bhash = new HashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  jedis.hmset(bfoo, bhash);

  assertEquals(0, jedis.hlen(bbar).intValue());
  assertEquals(2, jedis.hlen(bfoo).intValue());

    }

    @Test
    public void hkeys() {
  Map<String, String> hash = new LinkedHashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  jedis.hmset("foo", hash);

  Set<String> keys = jedis.hkeys("foo");
  Set<String> expected = new LinkedHashSet<String>();
  expected.add("bar");
  expected.add("car");
  assertEquals(expected, keys);

  // Binary
  Map<byte[], byte[]> bhash = new LinkedHashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  jedis.hmset(bfoo, bhash);

  Set<byte[]> bkeys = jedis.hkeys(bfoo);
  Set<byte[]> bexpected = new LinkedHashSet<byte[]>();
  bexpected.add(bbar);
  bexpected.add(bcar);
  assertEquals(bexpected, bkeys);
    }

    @Test
    public void hvals() {
  Map<String, String> hash = new LinkedHashMap<String, String>();
  hash.put("bar", "car");
  hash.put("car", "bar");
  jedis.hmset("foo", hash);

  List<String> vals = jedis.hvals("foo");
  assertEquals(2, vals.size());
  assertTrue(vals.contains("bar"));
  assertTrue(vals.contains("car"));

  // Binary
  Map<byte[], byte[]> bhash = new LinkedHashMap<byte[], byte[]>();
  bhash.put(bbar, bcar);
  bhash.put(bcar, bbar);
  jedis.hmset(bfoo, bhash);

  List<byte[]> bvals = jedis.hvals(bfoo);

  assertEquals(2, bvals.size());
  assertTrue(arrayContains(bvals, bbar));
  assertTrue(arrayContains(bvals, bcar));
    }

    @Test
    public void hgetAll() {
  Map<String, String> h = new HashMap<String, String>();
  h.put("bar", "car");
  h.put("car", "bar");
  jedis.hmset("foo", h);

  Map<String, String> hash = jedis.hgetAll("foo");
  assertEquals(2, hash.size());
  assertEquals("car", hash.get("bar"));
  assertEquals("bar", hash.get("car"));

  // Binary
  Map<byte[], byte[]> bh = new HashMap<byte[], byte[]>();
  bh.put(bbar, bcar);
  bh.put(bcar, bbar);
  jedis.hmset(bfoo, bh);
  Map<byte[], byte[]> bhash = jedis.hgetAll(bfoo);

  assertEquals(2, bhash.size());
  assertArrayEquals(bcar, bhash.get(bbar));
  assertArrayEquals(bbar, bhash.get(bcar));
    }

    @Test
    public void hgetAllPipeline() {
  Map<byte[], byte[]> bh = new HashMap<byte[], byte[]>();
  bh.put(bbar, bcar);
  bh.put(bcar, bbar);
  jedis.hmset(bfoo, bh);
  Pipeline pipeline = jedis.pipelined();
  Response<Map<byte[], byte[]>> bhashResponse = pipeline.hgetAll(bfoo);
  pipeline.sync();
  Map<byte[], byte[]> bhash = bhashResponse.get();

  assertEquals(2, bhash.size());
  assertArrayEquals(bcar, bhash.get(bbar));
  assertArrayEquals(bbar, bhash.get(bcar));
    }

    @Test
    public void hscan() {
  jedis.hset("foo", "b", "b");
  jedis.hset("foo", "a", "a");

  ScanResult<Map.Entry<String, String>> result = jedis.hscan("foo",
    SCAN_POINTER_START);

  assertEquals(SCAN_POINTER_START, result.getCursor());
  assertFalse(result.getResult().isEmpty());

  // binary
  jedis.hset(bfoo, bbar, bcar);

  ScanResult<Map.Entry<byte[], byte[]>> bResult = jedis.hscan(bfoo,
    SCAN_POINTER_START_BINARY);

  assertArrayEquals(SCAN_POINTER_START_BINARY, bResult.getCursorAsBytes());
  assertFalse(bResult.getResult().isEmpty());
    }

    @Test
    public void hscanMatch() {
  ScanParams params = new ScanParams();
  params.match("a*");

  jedis.hset("foo", "b", "b");
  jedis.hset("foo", "a", "a");
  jedis.hset("foo", "aa", "aa");
  ScanResult<Map.Entry<String, String>> result = jedis.hscan("foo",
    SCAN_POINTER_START, params);

  assertEquals(SCAN_POINTER_START, result.getCursor());
  assertFalse(result.getResult().isEmpty());

  // binary
  params = new ScanParams();
  params.match(bbarstar);

  jedis.hset(bfoo, bbar, bcar);
  jedis.hset(bfoo, bbar1, bcar);
  jedis.hset(bfoo, bbar2, bcar);
  jedis.hset(bfoo, bbar3, bcar);

  ScanResult<Map.Entry<byte[], byte[]>> bResult = jedis.hscan(bfoo,
    SCAN_POINTER_START_BINARY, params);

  assertArrayEquals(SCAN_POINTER_START_BINARY, bResult.getCursorAsBytes());
  assertFalse(bResult.getResult().isEmpty());
    }

    @Test
    public void hscanCount() {
  ScanParams params = new ScanParams();
  params.count(2);

  for (int i = 0; i < 10; i++) {
      jedis.hset("foo", "a" + i, "a" + i);
  }

  ScanResult<Map.Entry<String, String>> result = jedis.hscan("foo",
    SCAN_POINTER_START, params);

  assertFalse(result.getResult().isEmpty());

  // binary
  params = new ScanParams();
  params.count(2);

  jedis.hset(bfoo, bbar, bcar);
  jedis.hset(bfoo, bbar1, bcar);
  jedis.hset(bfoo, bbar2, bcar);
  jedis.hset(bfoo, bbar3, bcar);

  ScanResult<Map.Entry<byte[], byte[]>> bResult = jedis.hscan(bfoo,
    SCAN_POINTER_START_BINARY, params);

  assertFalse(bResult.getResult().isEmpty());
    }
}
TOP

Related Classes of redis.clients.jedis.tests.commands.HashesCommandsTest

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.