ledisdb/server/http/cmd_list_test.go

218 lines
4.6 KiB
Go
Raw Normal View History

2014-07-25 13:27:07 +04:00
package http
import (
"fmt"
"testing"
"time"
)
func TestLpushCommand(t *testing.T) {
db := getTestDB()
_, err := lpushCommand(db, "test_lpush")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lpush") {
t.Fatal("invalid err ", err)
}
v, err := lpushCommand(db, "test_lpush", "1", "2")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 2 {
t.Fatal("invalid result", v)
}
}
func TestRpushCommand(t *testing.T) {
db := getTestDB()
_, err := rpushCommand(db, "test_rpush")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "rpush") {
t.Fatal("invalid err ", err)
}
v, err := rpushCommand(db, "test_rpush", "1", "2")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 2 {
t.Fatal("invalid result", v)
}
}
func TestLpopCommand(t *testing.T) {
db := getTestDB()
_, err := lpopCommand(db, "test_lpop", "a")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lpop") {
t.Fatal("invalid err ", err)
}
v, err := lpopCommand(db, "test_lpop")
if err != nil {
t.Fatal(err.Error())
}
if v != nil {
t.Fatal("invalid result", v)
}
}
func TestRpopCommand(t *testing.T) {
db := getTestDB()
_, err := rpopCommand(db, "test_rpop", "a")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "rpop") {
t.Fatal("invalid err ", err)
}
v, err := rpopCommand(db, "test_lpop")
if err != nil {
t.Fatal(err.Error())
}
if v != nil {
t.Fatal("invalid result", v)
}
}
func TestLlenCommand(t *testing.T) {
db := getTestDB()
_, err := llenCommand(db, "test_llen", "a")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "llen") {
t.Fatal("invalid err ", err)
}
v, err := llenCommand(db, "test_llen")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 0 {
t.Fatal("invalid result", v)
}
}
func TestLindexCommand(t *testing.T) {
db := getTestDB()
_, err := lindexCommand(db, "test_lindex")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lindex") {
t.Fatal("invalid err ", err)
}
v, err := lindexCommand(db, "test_lindex", "1")
if err != nil {
t.Fatal(err.Error())
}
if v != nil {
t.Fatal("invalid result", v)
}
}
func TestLrangeCommand(t *testing.T) {
db := getTestDB()
_, err := lrangeCommand(db, "test_lrange")
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lrange") {
t.Fatal("invalid err ", err)
}
v, err := lrangeCommand(db, "test_lrange", "1", "2")
if err != nil {
t.Fatal(err.Error())
}
arr := v.([]interface{})
if len(arr) != 0 {
t.Fatal("invalid result ", v)
}
}
func TestLclearCommand(t *testing.T) {
db := getTestDB()
_, err := lclearCommand(db)
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lclear") {
t.Fatal("invalid err ", err)
}
v, err := lclearCommand(db, "test_lclear")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 0 {
t.Fatal("invalid result ", v)
}
}
func TestLmclearCommand(t *testing.T) {
db := getTestDB()
_, err := lmclearCommand(db)
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lmclear") {
t.Fatal("invalid err ", err)
}
v, err := lmclearCommand(db, "test_lmclear")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 1 {
t.Fatal("invalid result ", v)
}
}
func TestLexpireCommand(t *testing.T) {
db := getTestDB()
_, err := lexpireCommand(db)
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lexpire") {
t.Fatal("invalid err ", err)
}
v, err := lexpireCommand(db, "test_lexpire", "10")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 0 {
t.Fatal("invalid result ", v)
}
}
func TestLexpireAtCommand(t *testing.T) {
db := getTestDB()
_, err := lexpireAtCommand(db)
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lexpireat") {
t.Fatal("invalid err ", err)
}
expireAt := fmt.Sprintf("%d", time.Now().Unix())
v, err := lexpireCommand(db, "test_lexpireat", expireAt)
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 0 {
t.Fatal("invalid result ", v)
}
}
func TestLTTLCommand(t *testing.T) {
db := getTestDB()
_, err := lttlCommand(db)
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lttl") {
t.Fatal("invalid err ", err)
}
v, err := lttlCommand(db, "test_lttl")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != -1 {
t.Fatal("invalid result ", v)
}
}
func TestLpersistCommand(t *testing.T) {
db := getTestDB()
_, err := lpersistCommand(db)
if err == nil || err.Error() != fmt.Sprintf(ERR_ARGUMENT_FORMAT, "lpersist") {
t.Fatal("invalid err ", err)
}
v, err := lpersistCommand(db, "test_lpersist")
if err != nil {
t.Fatal(err.Error())
}
if v.(int64) != 0 {
t.Fatal("invalid result ", v)
}
}