// Copyright 2024 Matthew Rich . All rights reserved. package resource import ( "context" _ "gopkg.in/yaml.v3" "encoding/json" _ "fmt" "gitea.rosskeen.house/rosskeen.house/machine" "decl/internal/data" ) type MockResource struct { InjectURI func() string InjectType func() string InjectResolveId func(ctx context.Context) string InjectLoadDecl func(string) error InjectValidate func() error InjectApply func() error InjectRead func(context.Context) ([]byte, error) InjectStateMachine func() machine.Stater } func (m *MockResource) Clone() data.Resource { return nil } func (m *MockResource) StateMachine() machine.Stater { return nil } func (m *MockResource) SetURI(uri string) error { return nil } func (m *MockResource) URI() string { return m.InjectURI() } func (m *MockResource) ResolveId(ctx context.Context) string { return m.InjectResolveId(ctx) } func (m *MockResource) LoadDecl(yamlResourceDeclaration string) error { return m.InjectLoadDecl(yamlResourceDeclaration) } func (m *MockResource) Validate() error { return m.InjectValidate() } func (m *MockResource) Apply() error { return m.InjectApply() } func (m *MockResource) Read(ctx context.Context) ([]byte, error) { return m.InjectRead(ctx) } func (m *MockResource) Type() string { return m.InjectType() } func (m *MockResource) UnmarshalJSON(data []byte) error { if err := json.Unmarshal(data, m); err != nil { return err } return nil }