58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package types
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type storeIntSuite struct {
|
|
suite.Suite
|
|
}
|
|
|
|
func TestStoreIntSuite(t *testing.T) {
|
|
suite.Run(t, new(storeIntSuite))
|
|
}
|
|
|
|
func (s *storeIntSuite) TestAssertNoPrefix() {
|
|
var testCases = []struct {
|
|
keys []string
|
|
expectPanic bool
|
|
}{
|
|
{[]string{""}, false},
|
|
{[]string{"a"}, false},
|
|
{[]string{"a", "b"}, false},
|
|
{[]string{"a", "b1"}, false},
|
|
{[]string{"b2", "b1"}, false},
|
|
{[]string{"b1", "bb", "b2"}, false},
|
|
|
|
{[]string{"a", ""}, true},
|
|
{[]string{"a", "b", "a"}, true},
|
|
{[]string{"a", "b", "aa"}, true},
|
|
{[]string{"a", "b", "ab"}, true},
|
|
{[]string{"a", "b1", "bb", "b12"}, true},
|
|
}
|
|
|
|
require := s.Require()
|
|
for _, tc := range testCases {
|
|
if tc.expectPanic {
|
|
require.Panics(func() { assertNoPrefix(tc.keys) })
|
|
} else {
|
|
assertNoPrefix(tc.keys)
|
|
}
|
|
}
|
|
}
|
|
|
|
func (s *storeIntSuite) TestNewKVStoreKeys() {
|
|
require := s.Require()
|
|
require.Panics(func() { NewKVStoreKeys("a1", "a") }, "should fail one key is a prefix of another one")
|
|
|
|
require.Equal(map[string]*KVStoreKey{}, NewKVStoreKeys())
|
|
require.Equal(1, len(NewKVStoreKeys("one")))
|
|
|
|
key := "baca"
|
|
stores := NewKVStoreKeys(key, "a")
|
|
require.Len(stores, 2)
|
|
require.Equal(key, stores[key].Name())
|
|
}
|