From 1143d2850bca118f06b0d1e757695eef0cccab3f Mon Sep 17 00:00:00 2001 From: Andrew Woodlee Date: Fri, 28 Feb 2025 17:40:32 -0600 Subject: [PATCH] added beginning of tests --- .../unreleased/Changed-20250228-173825.yaml | 3 + pkg/backy/packageoperation_enumer.go | 145 ++++++++++++++++++ tests/backy.yaml | 18 +++ 3 files changed, 166 insertions(+) create mode 100644 .changes/unreleased/Changed-20250228-173825.yaml create mode 100644 pkg/backy/packageoperation_enumer.go create mode 100644 tests/backy.yaml diff --git a/.changes/unreleased/Changed-20250228-173825.yaml b/.changes/unreleased/Changed-20250228-173825.yaml new file mode 100644 index 0000000..e32f9f9 --- /dev/null +++ b/.changes/unreleased/Changed-20250228-173825.yaml @@ -0,0 +1,3 @@ +kind: Changed +body: Changed PackageOperation to enums +time: 2025-02-28T17:38:25.426136588-06:00 diff --git a/pkg/backy/packageoperation_enumer.go b/pkg/backy/packageoperation_enumer.go new file mode 100644 index 0000000..6b62d6d --- /dev/null +++ b/pkg/backy/packageoperation_enumer.go @@ -0,0 +1,145 @@ +// Code generated by "enumer -linecomment -yaml -text -json -type=PackageOperation"; DO NOT EDIT. + +package backy + +import ( + "encoding/json" + "fmt" + "strings" +) + +const _PackageOperationName = "installupgradepurgeremovecheckVersionisInstalled" + +var _PackageOperationIndex = [...]uint8{0, 0, 7, 14, 19, 25, 37, 48} + +const _PackageOperationLowerName = "installupgradepurgeremovecheckversionisinstalled" + +func (i PackageOperation) String() string { + if i < 0 || i >= PackageOperation(len(_PackageOperationIndex)-1) { + return fmt.Sprintf("PackageOperation(%d)", i) + } + return _PackageOperationName[_PackageOperationIndex[i]:_PackageOperationIndex[i+1]] +} + +// An "invalid array index" compiler error signifies that the constant values have changed. +// Re-run the stringer command to generate them again. +func _PackageOperationNoOp() { + var x [1]struct{} + _ = x[DefaultPO-(0)] + _ = x[PackOppInstall-(1)] + _ = x[PackOppUpgrade-(2)] + _ = x[PackOppPurge-(3)] + _ = x[PackOppRemove-(4)] + _ = x[PackOppCheckVersion-(5)] + _ = x[PackOppIsInstalled-(6)] +} + +var _PackageOperationValues = []PackageOperation{DefaultPO, PackOppInstall, PackOppUpgrade, PackOppPurge, PackOppRemove, PackOppCheckVersion, PackOppIsInstalled} + +var _PackageOperationNameToValueMap = map[string]PackageOperation{ + _PackageOperationName[0:0]: DefaultPO, + _PackageOperationLowerName[0:0]: DefaultPO, + _PackageOperationName[0:7]: PackOppInstall, + _PackageOperationLowerName[0:7]: PackOppInstall, + _PackageOperationName[7:14]: PackOppUpgrade, + _PackageOperationLowerName[7:14]: PackOppUpgrade, + _PackageOperationName[14:19]: PackOppPurge, + _PackageOperationLowerName[14:19]: PackOppPurge, + _PackageOperationName[19:25]: PackOppRemove, + _PackageOperationLowerName[19:25]: PackOppRemove, + _PackageOperationName[25:37]: PackOppCheckVersion, + _PackageOperationLowerName[25:37]: PackOppCheckVersion, + _PackageOperationName[37:48]: PackOppIsInstalled, + _PackageOperationLowerName[37:48]: PackOppIsInstalled, +} + +var _PackageOperationNames = []string{ + _PackageOperationName[0:0], + _PackageOperationName[0:7], + _PackageOperationName[7:14], + _PackageOperationName[14:19], + _PackageOperationName[19:25], + _PackageOperationName[25:37], + _PackageOperationName[37:48], +} + +// PackageOperationString retrieves an enum value from the enum constants string name. +// Throws an error if the param is not part of the enum. +func PackageOperationString(s string) (PackageOperation, error) { + if val, ok := _PackageOperationNameToValueMap[s]; ok { + return val, nil + } + + if val, ok := _PackageOperationNameToValueMap[strings.ToLower(s)]; ok { + return val, nil + } + return 0, fmt.Errorf("%s does not belong to PackageOperation values", s) +} + +// PackageOperationValues returns all values of the enum +func PackageOperationValues() []PackageOperation { + return _PackageOperationValues +} + +// PackageOperationStrings returns a slice of all String values of the enum +func PackageOperationStrings() []string { + strs := make([]string, len(_PackageOperationNames)) + copy(strs, _PackageOperationNames) + return strs +} + +// IsAPackageOperation returns "true" if the value is listed in the enum definition. "false" otherwise +func (i PackageOperation) IsAPackageOperation() bool { + for _, v := range _PackageOperationValues { + if i == v { + return true + } + } + return false +} + +// MarshalJSON implements the json.Marshaler interface for PackageOperation +func (i PackageOperation) MarshalJSON() ([]byte, error) { + return json.Marshal(i.String()) +} + +// UnmarshalJSON implements the json.Unmarshaler interface for PackageOperation +func (i *PackageOperation) UnmarshalJSON(data []byte) error { + var s string + if err := json.Unmarshal(data, &s); err != nil { + return fmt.Errorf("PackageOperation should be a string, got %s", data) + } + + var err error + *i, err = PackageOperationString(s) + return err +} + +// MarshalText implements the encoding.TextMarshaler interface for PackageOperation +func (i PackageOperation) MarshalText() ([]byte, error) { + return []byte(i.String()), nil +} + +// UnmarshalText implements the encoding.TextUnmarshaler interface for PackageOperation +func (i *PackageOperation) UnmarshalText(text []byte) error { + var err error + *i, err = PackageOperationString(string(text)) + return err +} + +// MarshalYAML implements a YAML Marshaler for PackageOperation +func (i PackageOperation) MarshalYAML() (interface{}, error) { + return i.String(), nil +} + +// UnmarshalYAML implements a YAML Unmarshaler for PackageOperation +func (i *PackageOperation) UnmarshalYAML(unmarshal func(interface{}) error) error { + var s string + if err := unmarshal(&s); err != nil { + return err + } + + var err error + *i, err = PackageOperationString(s) + return err +} diff --git a/tests/backy.yaml b/tests/backy.yaml new file mode 100644 index 0000000..e15da07 --- /dev/null +++ b/tests/backy.yaml @@ -0,0 +1,18 @@ +commands: + echoTestPass: + cmd: echo + shell: bash + Args: hello world + + runRemoteShellScriptSuccess: + cmd: + + + packageCommandSuccess: + packageName: docker-ce + Args: + - docker-ce-cli + packageManager: apt + packageOperation: install + + \ No newline at end of file