kinesis-consumer/store/redis/redis_test.go
Harlow Ward c72f561abd
Replace Checkpoint with Store interface (#90)
As we work towards introducing consumer groups to the repository we need a more generic name for the persistence layer for storing checkpoints and leases for given shards. 

* Rename `checkpoint` to `store`
2019-07-28 21:18:40 -07:00

50 lines
999 B
Go

package redis
import (
"testing"
)
func Test_CheckpointLifecycle(t *testing.T) {
// new
c, err := New("app")
if err != nil {
t.Fatalf("new checkpoint error: %v", err)
}
// set
c.SetCheckpoint("streamName", "shardID", "testSeqNum")
// get
val, err := c.GetCheckpoint("streamName", "shardID")
if err != nil {
t.Fatalf("get checkpoint error: %v", err)
}
if val != "testSeqNum" {
t.Fatalf("checkpoint exists expected %s, got %s", "testSeqNum", val)
}
}
func Test_SetEmptySeqNum(t *testing.T) {
c, err := New("app")
if err != nil {
t.Fatalf("new checkpoint error: %v", err)
}
err = c.SetCheckpoint("streamName", "shardID", "")
if err == nil {
t.Fatalf("should not allow empty sequence number")
}
}
func Test_key(t *testing.T) {
c, err := New("app")
if err != nil {
t.Fatalf("new checkpoint error: %v", err)
}
want := "app:checkpoint:stream:shard"
if got := c.key("stream", "shard"); got != want {
t.Fatalf("checkpoint key, want %s, got %s", want, got)
}
}