moq/example/mockpersonstore_test.go
Lucas Bremgartner b21592468b Add static interface implementation check
Add an additional line of code per interface to the generated mock file,
which allows the go compiler to statically check if the mock implements
the mocked interface.
2019-01-17 20:20:37 +01:00

139 lines
3.6 KiB
Go
Executable File

// Code generated by moq; DO NOT EDIT.
// github.com/matryer/moq
package example
import (
"context"
"sync"
)
var (
lockPersonStoreMockCreate sync.RWMutex
lockPersonStoreMockGet sync.RWMutex
)
// Ensure, that PersonStoreMock does implement PersonStore.
// If this is not the case, regenerate this file with moq.
var _ PersonStore = &PersonStoreMock{}
// PersonStoreMock is a mock implementation of PersonStore.
//
// func TestSomethingThatUsesPersonStore(t *testing.T) {
//
// // make and configure a mocked PersonStore
// mockedPersonStore := &PersonStoreMock{
// CreateFunc: func(ctx context.Context, person *Person, confirm bool) error {
// panic("TODO: mock out the Create method")
// },
// GetFunc: func(ctx context.Context, id string) (*Person, error) {
// panic("TODO: mock out the Get method")
// },
// }
//
// // TODO: use mockedPersonStore in code that requires PersonStore
// // and then make assertions.
//
// }
type PersonStoreMock struct {
// CreateFunc mocks the Create method.
CreateFunc func(ctx context.Context, person *Person, confirm bool) error
// GetFunc mocks the Get method.
GetFunc func(ctx context.Context, id string) (*Person, error)
// calls tracks calls to the methods.
calls struct {
// Create holds details about calls to the Create method.
Create []struct {
// Ctx is the ctx argument value.
Ctx context.Context
// Person is the person argument value.
Person *Person
// Confirm is the confirm argument value.
Confirm bool
}
// Get holds details about calls to the Get method.
Get []struct {
// Ctx is the ctx argument value.
Ctx context.Context
// ID is the id argument value.
ID string
}
}
}
// Create calls CreateFunc.
func (mock *PersonStoreMock) Create(ctx context.Context, person *Person, confirm bool) error {
if mock.CreateFunc == nil {
panic("PersonStoreMock.CreateFunc: method is nil but PersonStore.Create was just called")
}
callInfo := struct {
Ctx context.Context
Person *Person
Confirm bool
}{
Ctx: ctx,
Person: person,
Confirm: confirm,
}
lockPersonStoreMockCreate.Lock()
mock.calls.Create = append(mock.calls.Create, callInfo)
lockPersonStoreMockCreate.Unlock()
return mock.CreateFunc(ctx, person, confirm)
}
// CreateCalls gets all the calls that were made to Create.
// Check the length with:
// len(mockedPersonStore.CreateCalls())
func (mock *PersonStoreMock) CreateCalls() []struct {
Ctx context.Context
Person *Person
Confirm bool
} {
var calls []struct {
Ctx context.Context
Person *Person
Confirm bool
}
lockPersonStoreMockCreate.RLock()
calls = mock.calls.Create
lockPersonStoreMockCreate.RUnlock()
return calls
}
// Get calls GetFunc.
func (mock *PersonStoreMock) Get(ctx context.Context, id string) (*Person, error) {
if mock.GetFunc == nil {
panic("PersonStoreMock.GetFunc: method is nil but PersonStore.Get was just called")
}
callInfo := struct {
Ctx context.Context
ID string
}{
Ctx: ctx,
ID: id,
}
lockPersonStoreMockGet.Lock()
mock.calls.Get = append(mock.calls.Get, callInfo)
lockPersonStoreMockGet.Unlock()
return mock.GetFunc(ctx, id)
}
// GetCalls gets all the calls that were made to Get.
// Check the length with:
// len(mockedPersonStore.GetCalls())
func (mock *PersonStoreMock) GetCalls() []struct {
Ctx context.Context
ID string
} {
var calls []struct {
Ctx context.Context
ID string
}
lockPersonStoreMockGet.RLock()
calls = mock.calls.Get
lockPersonStoreMockGet.RUnlock()
return calls
}