github.com/projecteru2/core@v0.0.0-20240321043226-06bcc1c23f58/wal/kv/mocked_test.go (about) 1 package kv 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestMockedKV(t *testing.T) { 11 m := NewMockedKV() 12 require.NoError(t, m.Open("/tmp/wal", 0777, time.Second)) 13 14 a := []byte("/a") 15 b := []byte("/b") 16 expValue := []byte("v") 17 require.NoError(t, m.Put(a, expValue)) 18 require.NoError(t, m.Put(b, expValue)) 19 require.NoError(t, m.Put([]byte("out-of-scan"), expValue)) 20 21 ch, abort := m.Scan([]byte("/")) 22 elem := <-ch 23 ent, ok := elem.(MockedScanEntry) 24 require.True(t, ok) 25 require.NoError(t, ent.Err) 26 abort() 27 28 _, abort = m.Scan([]byte("/")) 29 abort() 30 31 realValue, err := m.Get(a) 32 require.NoError(t, err) 33 require.Equal(t, expValue, realValue) 34 35 realValue, err = m.Get(b) 36 require.NoError(t, err) 37 require.Equal(t, expValue, realValue) 38 39 require.NoError(t, m.Delete(b)) 40 realValue, err = m.Get(b) 41 require.Error(t, err) 42 43 require.NoError(t, m.Close()) 44 45 realValue, err = m.Get(a) 46 require.Error(t, err) 47 }