1
0
Bifurcation 0
kvrepl/db_test.go

103 lignes
1.9 KiB
Go

package kvrepl
import "testing"
func TestRead(t *testing.T) {
var tests = []struct {
args []string
kv map[string]string
expected bool
}{
{[]string{}, nil, false},
{[]string{"a", "b"}, nil, false},
{[]string{"a"}, map[string]string{}, false},
{[]string{"a"}, map[string]string{"a": "b"}, true},
}
for _, rt := range tests {
_, actual := read(rt.args, rt.kv)
if (actual == nil) != rt.expected {
t.Errorf(
"failed read:\n\texpected: %v\n\t actual: %v",
rt.expected,
(actual == nil),
)
}
}
}
func TestWrite(t *testing.T) {
var tests = []struct {
args []string
kv map[string]string
expected bool
}{
{[]string{}, nil, false},
{[]string{"a"}, nil, false},
{[]string{"a", "b"}, map[string]string{}, true},
}
for _, rt := range tests {
actual := write(rt.args, rt.kv)
if (actual == nil) != rt.expected {
t.Errorf(
"failed write:\n\texpected: %v\n\t actual: %v",
rt.expected,
(actual == nil),
)
}
}
}
func TestDel(t *testing.T) {
var tests = []struct {
args []string
kv map[string]string
expected bool
}{
{[]string{}, nil, false},
{[]string{"a", "b"}, nil, false},
{[]string{"a"}, map[string]string{}, false},
{[]string{"a"}, map[string]string{"a": "b"}, true},
}
for _, rt := range tests {
actual := del(rt.args, rt.kv)
if (actual == nil) != rt.expected {
t.Errorf(
"failed del:\n\texpected: %v\n\t actual: %v",
rt.expected,
(actual == nil),
)
}
}
}
func TestSeries(t *testing.T) {
kv := make(map[string]string)
err := write([]string{"a", "b"}, kv)
if err != nil {
t.Errorf(
"failed series:\n\tfailed to write",
)
}
v, _ := read([]string{"a"}, kv)
if v != "b" {
t.Errorf(
"failed series:\n\texpected: %v\n\t actual: %v",
"b",
v,
)
}
_ = del([]string{"a"}, kv)
v, _ = read([]string{"a"}, kv)
if v != "" {
t.Errorf(
"failed series:\n\texpected: %v\n\t actual: %v",
"",
v,
)
}
}