Skip to content

Commit 37bf974

Browse files
1010sachinniravpatel27
authored andcommitted
Dev (#100)
* Extending the test to test for nodes
1 parent e33986a commit 37bf974

File tree

2 files changed

+258
-0
lines changed

2 files changed

+258
-0
lines changed

get/cluster_test.go

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
package get
2+
3+
import (
4+
"testing"
5+
"github.com/joyent/triton-kubernetes/backend/mocks"
6+
"github.com/joyent/triton-kubernetes/state"
7+
"github.com/spf13/viper"
8+
)
9+
10+
func TestGetClusterNoClusterManager(t *testing.T) {
11+
localBackend := &mocks.Backend{}
12+
13+
localBackend.On("States").Return([]string{}, nil)
14+
15+
err := GetCluster(localBackend)
16+
17+
expected := "No cluster managers."
18+
19+
if expected != err.Error() {
20+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
21+
}
22+
}
23+
24+
func TestMissingClusterManagerNonInteractiveMode(t *testing.T){
25+
viper.Set("non-interactive", true)
26+
27+
defer viper.Reset()
28+
29+
localBackend := &mocks.Backend{}
30+
31+
localBackend.On("States").Return([]string{"dev-manager", "test-manager"}, nil)
32+
33+
err := GetCluster(localBackend)
34+
35+
expected := "cluster_manager must be specified"
36+
37+
if expected != err.Error() {
38+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
39+
}
40+
41+
}
42+
43+
func TestUnidentifiedClusterManagerNonInteractiveMode(t *testing.T){
44+
viper.Set("non-interactive", true)
45+
viper.Set("cluster_manager", "xyz")
46+
47+
defer viper.Reset()
48+
49+
localBackend := &mocks.Backend{}
50+
51+
localBackend.On("States").Return([]string{"dev-manager", "test-manager"}, nil)
52+
53+
err := GetCluster(localBackend)
54+
55+
expected := "Selected cluster manager 'xyz' does not exist."
56+
57+
if expected != err.Error() {
58+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
59+
}
60+
61+
}
62+
63+
func TestNoCluster(t *testing.T){
64+
viper.Set("non-interactive", true)
65+
viper.Set("cluster_manager", "dev-manager")
66+
67+
defer viper.Reset()
68+
69+
stateObj, _ := state.New("ClusterState", []byte(`{
70+
"module":{}
71+
}`))
72+
73+
clusterManagerBackend := &mocks.Backend{}
74+
75+
clusterManagerBackend.On("States").Return([]string{"dev-manager", "test-manager"}, nil)
76+
77+
clusterManagerBackend.On("State", "dev-manager").Return(stateObj, nil)
78+
79+
err:= GetCluster(clusterManagerBackend)
80+
81+
expected := "No clusters."
82+
83+
if expected != err.Error() {
84+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
85+
}
86+
87+
}
88+
89+
func TestNoClusterNameNonInterative(t *testing.T){
90+
viper.Set("non-interactive", true)
91+
viper.Set("cluster_manager", "dev-manager")
92+
93+
defer viper.Reset()
94+
95+
stateObj, _ := state.New("ClusterState", []byte(`{
96+
"module":{
97+
"cluster_1":{"name":"dev_cluster"},
98+
"cluster_2":{"name":"beta_cluster"},
99+
"cluster_3":{"name":"prod_cluster"}
100+
}
101+
}`))
102+
103+
clusterManagerBackend := &mocks.Backend{}
104+
105+
clusterManagerBackend.On("States").Return([]string{"dev-manager", "test-manager"}, nil)
106+
107+
clusterManagerBackend.On("State", "dev-manager").Return(stateObj, nil)
108+
109+
err:= GetCluster(clusterManagerBackend)
110+
111+
expected := "cluster_name must be specified"
112+
113+
if expected != err.Error() {
114+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
115+
}
116+
117+
}
118+
119+
func TestUnidentifiedCluster(t *testing.T){
120+
viper.Set("non-interactive", true)
121+
viper.Set("cluster_manager", "dev-manager")
122+
viper.Set("cluster_name", "cluster_xyz")
123+
124+
defer viper.Reset()
125+
126+
stateObj, _ := state.New("ClusterState", []byte(`{
127+
"module":{
128+
"cluster_1":{"name":"dev_cluster"},
129+
"cluster_2":{"name":"beta_cluster"},
130+
"cluster_3":{"name":"prod_cluster"}
131+
}
132+
}`))
133+
134+
clusterManagerBackend := &mocks.Backend{}
135+
136+
clusterManagerBackend.On("States").Return([]string{"dev-manager", "test-manager"}, nil)
137+
138+
clusterManagerBackend.On("State", "dev-manager").Return(stateObj, nil)
139+
140+
err:= GetCluster(clusterManagerBackend)
141+
142+
expected := "A cluster named 'cluster_xyz', does not exist."
143+
144+
if expected != err.Error() {
145+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
146+
}
147+
148+
}
149+
150+

util/backend_prompt_test.go

+108
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package util
2+
3+
import (
4+
"testing"
5+
"github.com/spf13/viper"
6+
)
7+
8+
9+
func TestBackendPromptWithUnsupportedBackendProviderNonInteractiveMode(t *testing.T) {
10+
viper.Set("non-interactive", true)
11+
viper.Set("backend_provider", "S3")
12+
13+
defer viper.Reset()
14+
15+
_,err:=PromptForBackend()
16+
17+
expected:= "Unsupported backend provider 'S3'"
18+
19+
if err.Error() != expected {
20+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
21+
}
22+
}
23+
24+
25+
func TestBackendPromptWithNoTritonAccountNonInteractiveMode(t *testing.T) {
26+
viper.Set("non-interactive", true)
27+
viper.Set("backend_provider", "manta")
28+
29+
defer viper.Reset()
30+
31+
_,err:=PromptForBackend()
32+
33+
expected:= "triton_account must be specified"
34+
35+
if err.Error() != expected {
36+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
37+
}
38+
}
39+
40+
func TestBackendPromptWithNoTritonSSHKeyPathNonInteractiveMode(t *testing.T) {
41+
viper.Set("non-interactive", true)
42+
viper.Set("backend_provider", "manta")
43+
viper.Set("triton_account", "xyz")
44+
45+
defer viper.Reset()
46+
47+
_,err:=PromptForBackend()
48+
49+
expected:= "triton_key_path must be specified"
50+
51+
if err.Error() != expected {
52+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
53+
}
54+
}
55+
56+
func TestBackendPromptWithInvalidTritonSSHKeyPathInteractive(t *testing.T) {
57+
viper.Set("non-interactive", false)
58+
viper.Set("backend_provider", "manta")
59+
viper.Set("triton_account", "xyz")
60+
viper.Set("triton_key_path", "")
61+
62+
defer viper.Reset()
63+
64+
_,err:=PromptForBackend()
65+
66+
expected:= "Unable to read private key: open : no such file or directory"
67+
68+
if err.Error() != expected {
69+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
70+
}
71+
}
72+
73+
func TestNoTritonURLForNonInteractiveMode (t *testing.T) {
74+
viper.Set("non-interactive", true)
75+
viper.Set("backend_provider", "manta")
76+
viper.Set("triton_account", "xyz")
77+
viper.Set("triton_key_path", "")
78+
viper.Set("triton_key_id", "")
79+
80+
defer viper.Reset()
81+
82+
_,err := PromptForBackend()
83+
84+
expected := "triton_url must be specified"
85+
86+
if err.Error() != expected {
87+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
88+
}
89+
}
90+
91+
func TestNoMantaURLForNonInteractiveMode (t *testing.T) {
92+
viper.Set("non-interactive", true)
93+
viper.Set("backend_provider", "manta")
94+
viper.Set("triton_account", "xyz")
95+
viper.Set("triton_key_path", "")
96+
viper.Set("triton_key_id", "")
97+
viper.Set("triton_url", "xyz.triton.com")
98+
99+
defer viper.Reset()
100+
101+
_,err := PromptForBackend()
102+
103+
expected := "manta_url must be specified"
104+
105+
if err.Error() != expected {
106+
t.Errorf("Wrong output, expected %s, received %s", expected, err.Error())
107+
}
108+
}

0 commit comments

Comments
 (0)