Files
cloud-services/pkg/db/queries/mocks/dbtestcase.go

49 lines
1.5 KiB
Go

package mocks
import (
"fmt"
"testing"
"github.com/fiskerinc/cloud-services/pkg/db/queries"
th "github.com/fiskerinc/cloud-services/pkg/testhelper"
)
type DBTestCase struct {
ExpectedFilter fmt.Stringer
ExpectedPage *queries.PageQueryOptions
MockListResponse interface{}
MockLoadResponse interface{}
SetupMockResponse func()
MockError error
MockDriverError error
}
func (tc *DBTestCase) SetupDB(mock DBMockHelperInterface) {
if mock != nil {
mock.SetErr(tc.MockError)
mock.SetListResp(tc.MockListResponse)
mock.SetLoadResp(tc.MockLoadResponse)
mock.SetDriverError(tc.MockDriverError)
}
if tc.SetupMockResponse != nil {
tc.SetupMockResponse()
}
}
func (tc *DBTestCase) Validate(t *testing.T, name string, mock DBMockHelperInterface) {
if mock != nil {
if mock.GetFilter() != nil && tc.ExpectedFilter != nil && mock.GetFilter().String() != tc.ExpectedFilter.String() {
t.Errorf(th.TestErrorTemplate, name, tc.ExpectedFilter.String(), mock.GetFilter().String())
} else if mock.GetFilter() == nil && tc.ExpectedFilter != nil {
t.Errorf(th.TestErrorTemplate, name, tc.ExpectedFilter.String(), nil)
}
if mock.GetPaging() != nil && tc.ExpectedPage != nil && mock.GetPaging().String() != tc.ExpectedPage.String() {
t.Errorf(th.TestErrorTemplate, name, tc.ExpectedPage.String(), mock.GetPaging().String())
} else if mock.GetPaging() == nil && tc.ExpectedPage != nil {
t.Errorf(th.TestErrorTemplate, name, tc.ExpectedPage.String(), nil)
}
}
}