move resolve into package

This commit is contained in:
Bel LaPointe
2021-02-21 12:39:15 -06:00
parent ff8b908ee7
commit 7f2d451ca4
15 changed files with 205 additions and 175 deletions

View File

@@ -3,6 +3,7 @@ package storage
import (
"bytes"
"io/ioutil"
"local/storage/resolve"
"log"
"net"
"os"
@@ -17,8 +18,8 @@ type mock struct {
}
func (mock *mock) List(ns []string, limits ...string) ([]string, error) {
namespace := resolveNamespace(ns)
limits = resolveLimits(limits)
namespace := resolve.Namespace(ns)
limits = resolve.Limits(limits)
keys := []string{}
for k := range mock.m {
if k >= limits[0] && k <= limits[1] {
@@ -29,7 +30,7 @@ func (mock *mock) List(ns []string, limits ...string) ([]string, error) {
}
func (mock *mock) Get(key string, ns ...string) ([]byte, error) {
namespace := resolveNamespace(ns)
namespace := resolve.Namespace(ns)
v, ok := mock.m[path.Join(namespace, key)]
if ok {
return v, nil
@@ -38,7 +39,7 @@ func (mock *mock) Get(key string, ns ...string) ([]byte, error) {
}
func (mock *mock) Set(key string, value []byte, ns ...string) error {
namespace := resolveNamespace(ns)
namespace := resolve.Namespace(ns)
mock.m[path.Join(namespace, key)] = value
return nil
}
@@ -313,77 +314,3 @@ func recoverDeferred(c Type, t *testing.T, wg *sync.WaitGroup) {
}
defer wg.Done()
}
func TestResolveLimitsStart(t *testing.T) {
cases := map[string]struct {
in string
out string
}{
"explicit": {in: "no", out: "no"},
}
for name, c := range cases {
input := strings.Split(c.in, ",")
out := resolveLimitsStart(input)
if out != c.out {
t.Errorf("%v: got %v, want %v from %v", name, out, c.out, c.in)
}
}
}
func TestResolveLimitsStop(t *testing.T) {
cases := map[string]struct {
in string
out string
}{
"short arr": {in: "", out: "}}}}}}"},
"explicit": {in: ",no", out: "no"},
}
for name, c := range cases {
input := strings.Split(c.in, ",")
out := resolveLimitsStop(input)
if out != c.out {
t.Errorf("%v: got %v, want %v from %v", name, out, c.out, c.in)
}
}
}
func TestResolveLimitsLimit(t *testing.T) {
cases := map[string]struct {
in string
out string
}{
"15": {in: ",,15", out: "15"},
"0 set": {in: ",,0", out: "0"},
"0 default": {in: ",,", out: "0"},
}
for name, c := range cases {
input := strings.Split(c.in, ",")
out := resolveLimitsLimit(input)
if out != c.out {
t.Errorf("%v: got %v, want %v from %v", name, out, c.out, c.in)
}
}
}
func TestResolveLimitsAscending(t *testing.T) {
cases := map[string]struct {
in string
out string
}{
"desc": {in: "a,b,c,-", out: "false"},
"asc": {in: "a,b,c,+", out: "true"},
"default asc prev": {in: "a,b,c,", out: "true"},
"default asc empty": {in: ",,,", out: "true"},
}
for name, c := range cases {
input := strings.Split(c.in, ",")
out := resolveLimitsAscending(input)
if out != c.out {
t.Errorf("%v: got %v, want %v from %v", name, out, c.out, c.in)
}
}
}