Initial import
This commit is contained in:
65
provider_test.go
Normal file
65
provider_test.go
Normal file
@@ -0,0 +1,65 @@
|
||||
package secret
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type testProviderCase struct {
|
||||
Name string
|
||||
Key string
|
||||
Err error
|
||||
Test func([]byte) error
|
||||
}
|
||||
|
||||
func testProvider(t *testing.T, p Provider, tests ...testProviderCase) {
|
||||
t.Helper()
|
||||
|
||||
for _, test := range tests {
|
||||
if test.Name == "" {
|
||||
test.Name = test.Key
|
||||
}
|
||||
t.Run(test.Name, func(it *testing.T) {
|
||||
v, err := p.GetSecret(test.Key)
|
||||
if err != nil {
|
||||
if test.Err == nil {
|
||||
it.Fatalf("unexpected error %q in %T (%#+v)", err, p, p)
|
||||
return
|
||||
} else if !errors.Is(err, test.Err) {
|
||||
it.Fatalf("unexpected error %q, expected error %q", err, test.Err)
|
||||
return
|
||||
}
|
||||
return
|
||||
} else if test.Err != nil {
|
||||
it.Fatalf("expected error %q", test.Err)
|
||||
return
|
||||
}
|
||||
|
||||
if err := test.Test(v); err != nil {
|
||||
it.Error(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func testNotEmpty(v []byte) error {
|
||||
if len(v) > 0 {
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("expected empty, got %q", v)
|
||||
}
|
||||
|
||||
func testEqual(a []byte) func([]byte) error {
|
||||
return func(b []byte) error {
|
||||
if bytes.Equal(a, b) {
|
||||
return nil
|
||||
}
|
||||
return fmt.Errorf("expected %q, got %q", a, b)
|
||||
}
|
||||
}
|
||||
|
||||
func testEqualString(a string) func([]byte) error {
|
||||
return testEqual([]byte(a))
|
||||
}
|
Reference in New Issue
Block a user