package api
import "fmt"
// Fake is a configurable test double for Klex. Set the handler fields
// for the methods the test exercises; unset methods return an error.
//
// Example:
//
// var k Klex = &Fake{
// FFunc: func(name, in string) (string, error) {
// return "canned response", nil
// },
// }
type Fake struct {
FFunc func(name, in string) (string, error)
MessagesFunc func(req MessagesRequest) (*MessagesResponse, error)
EmbedFunc func(req EmbedRequest) ([][]float32, error)
}
func (f *Fake) F(name, in string) (string, error) {
if f.FFunc == nil {
return "", fmt.Errorf("Fake.F: no handler set")
}
return f.FFunc(name, in)
}
func (f *Fake) Messages(
req MessagesRequest,
) (*MessagesResponse, error) {
if f.MessagesFunc == nil {
return nil, fmt.Errorf("Fake.Messages: no handler set")
}
return f.MessagesFunc(req)
}
func (f *Fake) Embed(req EmbedRequest) ([][]float32, error) {
if f.EmbedFunc == nil {
return nil, fmt.Errorf("Fake.Embed: no handler set")
}
return f.EmbedFunc(req)
}