github.com/seeker-insurance/kit@v0.0.13/assets/assets_test.go (about) 1 package assets 2 3 import ( 4 "testing" 5 6 "github.com/seeker-insurance/kit/copyslice" 7 "github.com/stretchr/testify/assert" 8 9 "github.com/seeker-insurance/kit/errorlib" 10 "github.com/seeker-insurance/kit/maputil/stringmap" 11 ) 12 13 var testAssets = map[string][]byte{} 14 15 const errMissingAsset errorlib.ErrorString = "missing asset" 16 17 func mockGet(m map[string]string) AssetGet { 18 m = stringmap.Copy(m) 19 return func(s string) ([]byte, error) { 20 if v, ok := m[s]; ok { 21 return []byte(v), nil 22 } 23 return nil, errMissingAsset 24 } 25 } 26 27 func mockDir(m map[string][]string) AssetDir { 28 copy := make(map[string][]string) 29 for k, v := range m { 30 copy[k] = copyslice.String(v) 31 } 32 return func(s string) ([]string, error) { 33 if v, ok := m[s]; ok { 34 return v, nil 35 } 36 return nil, errMissingAsset 37 } 38 } 39 40 func revertManager() { Manager = nil } 41 42 func TestGet(t *testing.T) { 43 const key, want = "foo", "bar" 44 defer revertManager() 45 _, err := Get(key) 46 assert.EqualError(t, err, string(ErrManagerNotSet)) 47 48 Manager = new(AssetManager) 49 _, err = Get(key) 50 assert.EqualError(t, err, string(ErrNoGetFunc)) 51 52 get := mockGet(map[string]string{key: want}) 53 Manager = &AssetManager{Get: get} 54 got, err := Get(key) 55 assert.NoError(t, err) 56 assert.Equal(t, []byte(want), got) 57 58 } 59 func TestDir(t *testing.T) { 60 const key = "foo" 61 want := []string{"bar", "baz"} 62 defer revertManager() 63 _, err := Dir(key) 64 assert.EqualError(t, err, string(ErrManagerNotSet)) 65 66 Manager = new(AssetManager) 67 _, err = Dir(key) 68 assert.EqualError(t, err, string(ErrNoDirFunc)) 69 70 dir := mockDir(map[string][]string{key: want}) 71 Manager = &AssetManager{Dir: dir} 72 got, err := Dir(key) 73 assert.NoError(t, err) 74 assert.Equal(t, want, got) 75 76 }