MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / TestIteratorPrefix

Function TestIteratorPrefix

driver/ipfs-synckv/iterator_test.go:51–93  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

49}
50
51func TestIteratorPrefix(t *testing.T) {
52 tmpDir, err := os.MkdirTemp("", "ipfs-synckv-test")
53 require.NoError(t, err)
54 defer os.RemoveAll(tmpDir)
55
56 cfg := config.NewConfigDefault()
57 store := Store{}
58 db, err := store.Open(tmpDir, cfg)
59 require.NoError(t, err)
60 defer db.Close()
61
62 // Insert test data
63 testData := map[string][]byte{
64 "prefix1_key1": []byte("value1"),
65 "prefix1_key2": []byte("value2"),
66 "prefix2_key1": []byte("value3"),
67 }
68
69 for k, v := range testData {
70 require.NoError(t, db.Put([]byte(k), v))
71 }
72
73 // Test prefix iterator
74 iter := db.NewIterator()
75 iter.Seek([]byte("prefix1"))
76 defer iter.Close()
77
78 count := 0
79 for iter.Valid() {
80 key := iter.Key()
81 if string(key) >= "prefix2" {
82 break
83 }
84 count++
85 value := iter.Value()
86 expected, exists := testData[string(key)]
87 require.True(t, exists)
88 require.Equal(t, expected, value)
89 require.Contains(t, string(key), "prefix1")
90 iter.Next()
91 }
92 require.Equal(t, 2, count)
93}

Callers

nothing calls this directly

Calls 11

OpenMethod · 0.95
SeekMethod · 0.95
CloseMethod · 0.95
ValidMethod · 0.95
KeyMethod · 0.95
ValueMethod · 0.95
NextMethod · 0.95
CloseMethod · 0.65
EqualMethod · 0.65
PutMethod · 0.45
NewIteratorMethod · 0.45

Tested by

no test coverage detected