// Copyright (C) 2011 - Will Glozer. All rights reserved. package com.lambdaworks.redis; import org.junit.Test; import static com.lambdaworks.redis.SortArgs.Builder.*; import static org.junit.Assert.assertEquals; public class SortCommandTest extends AbstractCommandTest { @Test public void sort() throws Exception { redis.rpush(key, "3", "2", "1"); assertEquals(list("1", "2", "3"), redis.sort(key)); assertEquals(list("1", "2", "3"), redis.sort(key, asc())); } @Test public void sortAlpha() throws Exception { redis.rpush(key, "A", "B", "C"); assertEquals(list("C", "B", "A"), redis.sort(key, alpha().desc())); } @Test public void sortBy() throws Exception { redis.rpush(key, "foo", "bar", "baz"); redis.set("weight_foo", "8"); redis.set("weight_bar", "4"); redis.set("weight_baz", "2"); assertEquals(list("baz", "bar", "foo"), redis.sort(key, by("weight_*"))); } @Test public void sortDesc() throws Exception { redis.rpush(key, "1", "2", "3"); assertEquals(list("3", "2", "1"), redis.sort(key, desc())); } @Test public void sortGet() throws Exception { redis.rpush(key, "1", "2"); redis.set("obj_1", "foo"); redis.set("obj_2", "bar"); assertEquals(list("foo", "bar"), redis.sort(key, get("obj_*"))); } @Test public void sortLimit() throws Exception { redis.rpush(key, "3", "2", "1"); assertEquals(list("2", "3"), redis.sort(key, limit(1, 2))); } @Test public void sortStore() throws Exception { redis.rpush("one", "1", "2", "3"); assertEquals(3, (long) redis.sortStore("one", desc(), "two")); assertEquals(list("3", "2", "1"), redis.lrange("two", 0, -1)); } }