// Copyright 2024 Matthew Rich . All rights reserved. package folio import ( "context" _ "gopkg.in/yaml.v3" "decl/internal/codec" "decl/internal/data" "io" "net/url" "path/filepath" "fmt" ) func RegisterConfigurationMocks() { TestConfigurationTypes.Register([]string{"generic"}, func(u *url.URL) data.Configuration { q := NewQuuzConfiguration() q.Name = filepath.Join(u.Hostname(), u.Path) return q }) } type MockQuuz struct { *MockConfiguration `json:"-" yaml:"-"` Name string `json:"name" yaml:"name"` Value string `json:"value" yaml:"value"` } func NewMockConfiguration(typename string) *MockConfiguration { return &MockConfiguration { InjectType: func() string { return typename }, InjectResolveId: func(ctx context.Context) string { return "bar" }, InjectLoadString: func(string, codec.Format) (error) { return nil }, InjectLoad: func([]byte, codec.Format) (error) { return nil }, InjectLoadReader: func(io.ReadCloser, codec.Format) (error) { return nil }, InjectValidate: func() error { return nil }, InjectRead: func(context.Context) ([]byte, error) { return nil, nil }, InjectGetValue: func(key string) (any, error) { return nil, nil }, InjectURI: func() string { return fmt.Sprintf("%s://bar", typename) }, } } func NewQuuzConfiguration() *MockQuuz { q := &MockQuuz {} q.MockConfiguration = NewMockConfiguration("generic") return q }