github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/indexcheckpoint/checkpoint_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package indexcheckpoint 13 14 import ( 15 "io" 16 "testing" 17 18 "github.com/sirupsen/logrus" 19 "github.com/stretchr/testify/require" 20 ) 21 22 func TestCheckpoint(t *testing.T) { 23 l := logrus.New() 24 l.SetOutput(io.Discard) 25 26 c, err := New(t.TempDir(), l) 27 require.NoError(t, err) 28 defer c.Close() 29 30 t.Run("get non-existing", func(t *testing.T) { 31 v, ok, err := c.Get("shard1", "a") 32 require.NoError(t, err) 33 require.False(t, ok) 34 require.Zero(t, v) 35 }) 36 37 t.Run("set and get", func(t *testing.T) { 38 err := c.Update("shard1", "a", 123) 39 require.NoError(t, err) 40 41 v, ok, err := c.Get("shard1", "a") 42 require.NoError(t, err) 43 require.True(t, ok) 44 require.EqualValues(t, 123, v) 45 }) 46 47 t.Run("set and get: no target", func(t *testing.T) { 48 err := c.Update("shard1", "", 123) 49 require.NoError(t, err) 50 51 v, ok, err := c.Get("shard1", "") 52 require.NoError(t, err) 53 require.True(t, ok) 54 require.EqualValues(t, 123, v) 55 }) 56 57 t.Run("overwrite", func(t *testing.T) { 58 err := c.Update("shard1", "a", 456) 59 require.NoError(t, err) 60 61 v, ok, err := c.Get("shard1", "a") 62 require.NoError(t, err) 63 require.True(t, ok) 64 require.EqualValues(t, 456, v) 65 }) 66 67 t.Run("delete", func(t *testing.T) { 68 err := c.Delete("shard1", "a") 69 require.NoError(t, err) 70 71 v, ok, err := c.Get("shard1", "a") 72 require.NoError(t, err) 73 require.False(t, ok) 74 require.Zero(t, v) 75 }) 76 77 t.Run("drop", func(t *testing.T) { 78 c, err := New(t.TempDir(), l) 79 require.NoError(t, err) 80 defer c.Close() 81 82 err = c.Drop() 83 require.NoError(t, err) 84 85 _, _, err = c.Get("shard1", "a") 86 require.Error(t, err) 87 88 err = c.Update("shard1", "a", 123) 89 require.Error(t, err) 90 91 err = c.Delete("shard1", "a") 92 require.Error(t, err) 93 94 err = c.Drop() 95 require.Error(t, err) 96 }) 97 }