Files
2026-09-03 21:57:42 -04:00

65 lines
1.7 KiB
Go

package external
import (
appPkg "coopcloud.tech/abra/pkg/app"
"github.com/stretchr/testify/mock"
)
type AppPackage interface {
GetApps(recipeFilter string, servers ...string) ([]appPkg.App, error)
GetAppStatuses(apps []appPkg.App, MachineReadable bool) (map[string]map[string]string, error)
StackName(app appPkg.App) string
}
type AbraAppPackage struct{}
func (a *AbraAppPackage) GetApps(recipeFilter string, servers ...string) ([]appPkg.App, error) {
appFiles, err := appPkg.LoadAppFiles(servers...)
if err != nil {
return nil, err
}
apps, err := appPkg.GetApps(appFiles, recipeFilter)
if err != nil {
return nil, err
}
return apps, nil
}
func (a *AbraAppPackage) GetAppStatuses(apps []appPkg.App, MachineReadable bool) (map[string]map[string]string, error) {
return appPkg.GetAppStatuses(apps, MachineReadable)
}
func (a *AbraAppPackage) StackName(app appPkg.App) string {
return app.StackName()
}
type MockAppPackage struct {
mock.Mock
}
func (a *MockAppPackage) GetApps(recipeFilter string, servers ...string) ([]appPkg.App, error) {
callArgs := []interface{}{recipeFilter}
for _, arg := range servers {
callArgs = append(callArgs, arg)
}
args := a.Called(callArgs...)
return args.Get(0).([]appPkg.App), args.Error(1)
}
func (a *MockAppPackage) GetAppStatuses(apps []appPkg.App, MachineReadable bool) (map[string]map[string]string, error) {
callArgs := []interface{}{}
for _, arg := range apps {
callArgs = append(callArgs, arg)
}
callArgs = append(callArgs, MachineReadable)
args := a.Called(callArgs...)
return args.Get(0).(map[string]map[string]string), args.Error(1)
}
func (a *MockAppPackage) StackName(app appPkg.App) string {
callArgs := []interface{}{app}
args := a.Called(callArgs...)
return args.Get(0).(string)
}