func (a *MockAssociation) Find(value interface{}) *QueryWrapper {
	a.noopAssociation.Find(&value)
	expectation := &SqlmockQueryExpectation{association: a, parent: a.parent}
	return &QueryWrapper{association: a, expectation: expectation}
}
Find wraps gorm.Association
package gormexpect
import (
	"fmt"
	"github.com/jinzhu/gorm"
)
type Operation int
const (
	Find Operation = iota
	Append
	Replace
	Delete
	Count
	Clear
)
type MockAssociation struct {
	column          string
	parent          *Expecter
	noopAssociation *gorm.Association
	operation       Operation
}
type QueryWrapper struct {
	association *MockAssociation
	expectation QueryExpectation
}
func (w *QueryWrapper) Returns(value interface{}) *MockAssociation {
	w.expectation.Returns(value)
	return w.association
}
type ExecWrapper struct {
	association *MockAssociation
	expectation ExecExpectation
}
func (w *ExecWrapper) WillSucceed(lastReturnID, rowsAffected int64) {
	switch w.association.operation {
	case Replace:
		handleReplace(w.association, true)
	case Append, Clear, Delete:
		handleAssociationGeneric(w.association)
	default:
		return
	}
}
func NewMockAssociation(c string, a *gorm.Association, e *Expecter) *MockAssociation {
	return &MockAssociation{column: c, parent: e, noopAssociation: a}
}