65 lines
1.7 KiB
Go
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)
|
|
}
|