-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmetadata_test.go
More file actions
49 lines (39 loc) · 859 Bytes
/
Copy pathmetadata_test.go
File metadata and controls
49 lines (39 loc) · 859 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package s2
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestMetadata(t *testing.T) {
m := Metadata{
"key1": "value1",
"key2": "value2",
}
assert.Equal(t, 2, len(m))
val, ok := m.Get("key1")
assert.True(t, ok)
assert.Equal(t, "value1", val)
val, ok = m.Get("nonexistent")
assert.False(t, ok)
assert.Equal(t, "", val)
m.Set("key3", "value3")
assert.Equal(t, 3, len(m))
val, ok = m.Get("key3")
assert.True(t, ok)
assert.Equal(t, "value3", val)
m.Delete("key3")
_, ok = m.Get("key3")
assert.False(t, ok)
}
func TestMetadataClone(t *testing.T) {
t.Run("nil clone returns nil", func(t *testing.T) {
var m Metadata
assert.Nil(t, m.Clone())
})
t.Run("clone is independent", func(t *testing.T) {
m := Metadata{"a": "1"}
c := m.Clone()
c.Set("a", "2")
v, _ := m.Get("a")
assert.Equal(t, "1", v)
})
}