]> Sergey Matveev's repositories - btrtrc.git/blob - storage/bolt-piece-completion_test.go
Drop support for go 1.20
[btrtrc.git] / storage / bolt-piece-completion_test.go
1 package storage
2
3 import (
4         "testing"
5
6         "github.com/stretchr/testify/assert"
7         "github.com/stretchr/testify/require"
8
9         "github.com/anacrolix/torrent/metainfo"
10 )
11
12 func TestBoltPieceCompletion(t *testing.T) {
13         td := t.TempDir()
14
15         pc, err := NewBoltPieceCompletion(td)
16         require.NoError(t, err)
17         defer pc.Close()
18
19         pk := metainfo.PieceKey{}
20
21         b, err := pc.Get(pk)
22         require.NoError(t, err)
23         assert.False(t, b.Ok)
24
25         require.NoError(t, pc.Set(pk, false))
26
27         b, err = pc.Get(pk)
28         require.NoError(t, err)
29         assert.Equal(t, Completion{Complete: false, Ok: true}, b)
30
31         require.NoError(t, pc.Set(pk, true))
32
33         b, err = pc.Get(pk)
34         require.NoError(t, err)
35         assert.Equal(t, Completion{Complete: true, Ok: true}, b)
36 }