mirror of
https://github.com/Icinga/icingadb.git
synced 2026-05-28 04:35:54 -04:00
Redis: Add more tests
This commit is contained in:
parent
4f09b5b5e8
commit
8f6d12c09e
1 changed files with 110 additions and 0 deletions
110
redis_test.go
110
redis_test.go
|
|
@ -83,3 +83,113 @@ func TestRDBWrapper_CheckConnection(t *testing.T) {
|
|||
assert.False(t, rdbw.CheckConnection(true), "DBWrapper should not be connected")
|
||||
assert.Equal(t, uint32(11), atomic.LoadUint32(rdbw.ConnectionLostCounterAtomic))
|
||||
}
|
||||
|
||||
func TestRDBWrapper_HGetAll(t *testing.T) {
|
||||
rdb := redis.NewClient(&redis.Options{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DialTimeout: time.Minute / 2,
|
||||
ReadTimeout: time.Minute,
|
||||
WriteTimeout: time.Minute,
|
||||
})
|
||||
rdbw := NewTestRDBW(rdb)
|
||||
|
||||
if !rdbw.CheckConnection(true) {
|
||||
t.Fatal("This test needs a working Redis connection")
|
||||
}
|
||||
|
||||
rdb.Del("herpdaderp")
|
||||
rdb.HSet("herpdaderp", "one", 5)
|
||||
rdb.HSet("herpdaderp", "two", 11)
|
||||
|
||||
rdbw.CompareAndSetConnected(false)
|
||||
|
||||
var data map[string]string
|
||||
var err error
|
||||
done := make(chan bool)
|
||||
go func() {
|
||||
data, err = rdbw.HGetAll("herpdaderp")
|
||||
done <- true
|
||||
}()
|
||||
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
rdbw.CheckConnection(true)
|
||||
|
||||
<- done
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Contains(t, data, "one")
|
||||
assert.Contains(t, data, "two")
|
||||
}
|
||||
|
||||
func TestRDBWrapper_XRead(t *testing.T) {
|
||||
rdb := redis.NewClient(&redis.Options{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DialTimeout: time.Minute / 2,
|
||||
ReadTimeout: time.Minute,
|
||||
WriteTimeout: time.Minute,
|
||||
})
|
||||
rdbw := NewTestRDBW(rdb)
|
||||
|
||||
if !rdbw.CheckConnection(true) {
|
||||
t.Fatal("This test needs a working Redis connection")
|
||||
}
|
||||
|
||||
rdb.XTrim("teststream", 0)
|
||||
rdb.XAdd(&redis.XAddArgs{Stream: "teststream", Values: map[string]interface{}{"one": "5", "two": "11", "herp": "11"}})
|
||||
|
||||
rdbw.CompareAndSetConnected(false)
|
||||
|
||||
var data *redis.XStreamSliceCmd
|
||||
done := make(chan bool)
|
||||
go func() {
|
||||
data = rdbw.XRead(&redis.XReadArgs{Streams: []string{"teststream", "0"}})
|
||||
done <- true
|
||||
}()
|
||||
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
rdbw.CheckConnection(true)
|
||||
|
||||
<- done
|
||||
|
||||
streams, err := data.Result()
|
||||
assert.NoError(t, err)
|
||||
value := streams[0].Messages[0].Values
|
||||
|
||||
assert.Contains(t, value, "one")
|
||||
assert.Contains(t, value, "two")
|
||||
}
|
||||
|
||||
func TestRDBWrapper_XDel(t *testing.T) {
|
||||
rdb := redis.NewClient(&redis.Options{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DialTimeout: time.Minute / 2,
|
||||
ReadTimeout: time.Minute,
|
||||
WriteTimeout: time.Minute,
|
||||
})
|
||||
rdbw := NewTestRDBW(rdb)
|
||||
|
||||
if !rdbw.CheckConnection(true) {
|
||||
t.Fatal("This test needs a working Redis connection")
|
||||
}
|
||||
|
||||
rdb.XTrim("teststream", 0)
|
||||
adds := rdb.XAdd(&redis.XAddArgs{Stream: "teststream", Values: map[string]interface{}{"one": "5", "two": "11", "herp": "11"}})
|
||||
|
||||
rdbw.CompareAndSetConnected(false)
|
||||
|
||||
done := make(chan bool)
|
||||
go func() {
|
||||
rdbw.XDel("teststream", adds.Val())
|
||||
done <- true
|
||||
}()
|
||||
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
rdbw.CheckConnection(true)
|
||||
|
||||
<- done
|
||||
|
||||
data := rdbw.XRead(&redis.XReadArgs{Streams: []string{"teststream", "0"}, Block: -1})
|
||||
streams, err := data.Result()
|
||||
assert.Error(t, err)
|
||||
assert.Len(t, streams, 0)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue