Skip to content

Instantly share code, notes, and snippets.

@feloy
Created June 17, 2018 14:58
Show Gist options
  • Save feloy/1d03952065d7e997310ca194b949eb03 to your computer and use it in GitHub Desktop.
Save feloy/1d03952065d7e997310ca194b949eb03 to your computer and use it in GitHub Desktop.
func newTestK8s() *k8s {
client := k8s{
clientset: &fake.Clientset{},
}
return &client
}
func TestCanICreateDeploymentsFalse(t *testing.T) {
k8s := newTestSimpleK8s()
c, err := k8s.canICreateDeployments()
if err != nil {
t.Fatal("canICreateDeployments should not raise an error")
}
if c != false {
t.Fatal("canICreateDeployments should return false")
}
}
func TestCanICreateDeplaoymentsTrue(t *testing.T) {
k8s := newTestK8s()
k8s.clientset.(*fake.Clientset).Fake.AddReactor("create", "selfsubjectaccessreviews", func(action k8stesting.Action) (handled bool, ret runtime.Object, err error) {
mysar := &authorizationv1.SelfSubjectAccessReview{
Status: authorizationv1.SubjectAccessReviewStatus{
Allowed: true,
Reason: "I want to test it",
},
}
return true, mysar, nil
})
c, err := k8s.canICreateDeployments()
if err != nil {
t.Fatal("canICreateDeployments should not raise an error")
}
if c != true {
t.Fatal("canICreateDeployments should return true")
}
}
func TestCanICreateDeplaoymentsError(t *testing.T) {
k8s := newTestK8s()
k8s.clientset.(*fake.Clientset).Fake.AddReactor("create", "selfsubjectaccessreviews", func(action k8stesting.Action) (handled bool, ret runtime.Object, err error) {
return true, &authorizationv1.SelfSubjectAccessReview{}, errors.New("Error creating ssar")
})
_, err := k8s.canICreateDeployments()
if err == nil {
t.Fatal("canICreateDeployments should raise an error")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment