package storetest
import (
)
var (
cmds = []string{"echo foo", "put bar", "put lorem", "echo bar"}
searches = []struct {
next bool
seq int
prefix string
wantedSeq int
wantedCmd string
wantedErr error
}{
{false, 5, "echo", 4, "echo bar", nil},
{false, 5, "put", 3, "put lorem", nil},
{false, 4, "echo", 1, "echo foo", nil},
{false, 3, "f", 0, "", store.ErrNoMatchingCmd},
{false, 1, "", 0, "", store.ErrNoMatchingCmd},
{true, 1, "echo", 1, "echo foo", nil},
{true, 1, "put", 2, "put bar", nil},
{true, 2, "echo", 4, "echo bar", nil},
{true, 4, "put", 0, "", store.ErrNoMatchingCmd},
}
)
func ( *testing.T, store.Store) {
, := .NextCmdSeq()
if != 1 || != nil {
.Errorf("tStore.NextCmdSeq() => (%v, %v), want (1, nil)",
, )
}
for , := range cmds {
:= +
, := .AddCmd()
if != || != nil {
.Errorf("tStore.AddCmd(%v) => (%v, %v), want (%v, nil)",
, , , )
}
}
, := .NextCmdSeq()
:= + len(cmds)
if != || != nil {
.Errorf("tStore.NextCmdSeq() => (%v, %v), want (%v, nil)",
, , )
}
for , := range cmds {
:= +
, := .Cmd()
if != || != nil {
.Errorf("tStore.Cmd(%v) => (%v, %v), want (%v, nil)",
, , , )
}
}
for , := range searches {
:= .PrevCmd
:= "tStore.PrevCmd"
if .next {
= .NextCmd
= "tStore.NextCmd"
}
, := (.seq, .prefix)
:= store.Cmd{Text: .wantedCmd, Seq: .wantedSeq}
if != || !matchErr(, .wantedErr) {
.Errorf("%s(%v, %v) => (%v, %v), want (%v, %v)",
, .seq, .prefix, , , , .wantedErr)
}
}
if := .DelCmd(1); != nil {
.Error("Failed to remove cmd")
}
if , := .Cmd(1); !matchErr(, store.ErrNoMatchingCmd) {
.Errorf("Cmd(1) => (%v, %v), want (%v, %v)",
, , "", store.ErrNoMatchingCmd)
}
}