/
chaosmock.go
86 lines (70 loc) · 1.98 KB
/
chaosmock.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package chaos
import (
"time"
"github.com/asobti/kube-monkey/victims"
"github.com/stretchr/testify/mock"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
kube "k8s.io/client-go/kubernetes"
)
const (
NAMESPACE = metav1.NamespaceDefault
IDENTIFIER = "kube-monkey-id"
KIND = "Pod"
NAME = "name"
)
type VictimMock struct {
mock.Mock
victims.VictimBase
}
func (vm *VictimMock) IsEnrolled(clientset kube.Interface) (bool, error) {
args := vm.Called(clientset)
return args.Bool(0), args.Error(1)
}
func (vm *VictimMock) KillType(clientset kube.Interface) (string, error) {
args := vm.Called(clientset)
return args.String(0), args.Error(1)
}
func (vm *VictimMock) KillValue(clientset kube.Interface) (int, error) {
args := vm.Called(clientset)
return args.Int(0), args.Error(1)
}
func (vm *VictimMock) DeleteRandomPod(clientset kube.Interface) error {
args := vm.Called(clientset)
return args.Error(0)
}
func (vm *VictimMock) DeleteRandomPods(clientset kube.Interface, killValue int) error {
args := vm.Called(clientset, killValue)
return args.Error(0)
}
func (vm *VictimMock) KillNumberForKillingAll(clientset kube.Interface) (int, error) {
args := vm.Called(clientset)
return args.Int(0), args.Error(1)
}
func (vm *VictimMock) KillNumberForMaxPercentage(clientset kube.Interface, killValue int) (int, error) {
args := vm.Called(clientset, killValue)
return args.Int(0), args.Error(1)
}
func (vm *VictimMock) KillNumberForFixedPercentage(clientset kube.Interface, killValue int) (int, error) {
args := vm.Called(clientset, killValue)
return args.Int(0), args.Error(1)
}
func (vm *VictimMock) IsBlacklisted() bool {
args := vm.Called()
return args.Bool(0)
}
func (vm *VictimMock) IsWhitelisted() bool {
args := vm.Called()
return args.Bool(0)
}
func NewVictimMock() *VictimMock {
v := victims.New(KIND, NAME, NAMESPACE, IDENTIFIER, 1)
return &VictimMock{
VictimBase: *v,
}
}
func NewMock() *Chaos {
return &Chaos{
killAt: time.Now(),
victim: NewVictimMock(),
}
}