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) }