Skip to content

Commit c3f4785

Browse files
Adding UT for queue pkg under cli
1 parent 0c44e1a commit c3f4785

1 file changed

Lines changed: 175 additions & 0 deletions

File tree

pkg/cli/queue/queue_test.go

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
package queue
2+
3+
import (
4+
"encoding/json"
5+
"fmt"
6+
"net/http"
7+
"net/http/httptest"
8+
"testing"
9+
10+
"github.com/kubernetes-sigs/kube-batch/pkg/apis/scheduling/v1alpha1"
11+
"github.com/spf13/cobra"
12+
"k8s.io/apimachinery/pkg/apis/meta/v1"
13+
)
14+
15+
func getTestQueueHttpServer(t *testing.T) *httptest.Server {
16+
17+
response := v1alpha1.Queue{}
18+
19+
response.Name = "testQueue"
20+
response.Spec.Weight = int32(2)
21+
22+
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
23+
w.Header().Set("Content-Type", "application/json")
24+
val, err := json.Marshal(response)
25+
if err == nil {
26+
w.Write(val)
27+
}
28+
})
29+
return httptest.NewServer(handler)
30+
}
31+
32+
func getTestQueueListHttpServer(t *testing.T) *httptest.Server {
33+
34+
response := v1alpha1.QueueList{}
35+
36+
response.Items = []v1alpha1.Queue{
37+
{
38+
ObjectMeta: v1.ObjectMeta{
39+
Name: "testQueue",
40+
},
41+
Spec: v1alpha1.QueueSpec{
42+
Weight: int32(2),
43+
},
44+
},
45+
}
46+
47+
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
48+
w.Header().Set("Content-Type", "application/json")
49+
val, err := json.Marshal(response)
50+
if err == nil {
51+
w.Write(val)
52+
}
53+
})
54+
return httptest.NewServer(handler)
55+
}
56+
57+
func getCommonFlags(master string) commonFlags {
58+
return commonFlags{
59+
Master: master,
60+
}
61+
}
62+
63+
func TestCreateQueue(t *testing.T) {
64+
InitRunFlags(&cobra.Command{})
65+
server := getTestQueueHttpServer(t)
66+
defer server.Close()
67+
68+
createQueueFlags.commonFlags = getCommonFlags(server.URL)
69+
createQueueFlags.Name = "testQueue"
70+
createQueueFlags.Weight = int32(2)
71+
72+
testCases := []struct {
73+
Name string
74+
ExpectValue error
75+
}{
76+
{
77+
Name: "CreateQueue",
78+
ExpectValue: nil,
79+
},
80+
}
81+
for _, testcase := range testCases {
82+
err := CreateQueue()
83+
if err != nil {
84+
t.Errorf("(%s): expected: %v, got %v ", testcase.Name, testcase.ExpectValue, err)
85+
}
86+
}
87+
}
88+
89+
func TestGetQueue(t *testing.T) {
90+
InitGetFlags(&cobra.Command{})
91+
server := getTestQueueHttpServer(t)
92+
defer server.Close()
93+
94+
getQueueFlags.commonFlags = getCommonFlags(server.URL)
95+
96+
testCases := []struct {
97+
Name string
98+
ExpectValue error
99+
QueueName string
100+
}{
101+
{
102+
Name: "GetQueue",
103+
ExpectValue: nil,
104+
QueueName: "testQueue",
105+
},
106+
{
107+
Name: "",
108+
ExpectValue: fmt.Errorf("name is mandatory to get the particular queue details"),
109+
QueueName: "",
110+
},
111+
}
112+
for _, testcase := range testCases {
113+
getQueueFlags.Name = testcase.QueueName
114+
err := GetQueue()
115+
if err != nil && (err.Error() != testcase.ExpectValue.Error()) {
116+
t.Errorf("(%s): expected: %v, got %v ", testcase.Name, testcase.ExpectValue, err)
117+
}
118+
}
119+
}
120+
121+
func TestListQueue_empty(t *testing.T) {
122+
InitListFlags(&cobra.Command{})
123+
server := getTestQueueHttpServer(t)
124+
defer server.Close()
125+
126+
listQueueFlags.commonFlags = getCommonFlags(server.URL)
127+
128+
testCases := []struct {
129+
Name string
130+
ExpectValue error
131+
QueueName string
132+
}{
133+
{
134+
Name: "GetQueue",
135+
ExpectValue: nil,
136+
},
137+
}
138+
for _, testcase := range testCases {
139+
err := ListQueue()
140+
if err != nil && (err.Error() != testcase.ExpectValue.Error()) {
141+
t.Errorf("(%s): expected: %v, got %v ", testcase.Name, testcase.ExpectValue, err)
142+
}
143+
}
144+
}
145+
146+
func TestListQueue_nonempty(t *testing.T) {
147+
InitListFlags(&cobra.Command{})
148+
server := getTestQueueListHttpServer(t)
149+
defer server.Close()
150+
151+
listQueueFlags.commonFlags = getCommonFlags(server.URL)
152+
153+
testCases := []struct {
154+
Name string
155+
ExpectValue error
156+
QueueName string
157+
}{
158+
{
159+
Name: "GetQueue",
160+
ExpectValue: nil,
161+
QueueName: "testQueue",
162+
},
163+
{
164+
Name: "",
165+
ExpectValue: fmt.Errorf("name is mandatory to get the particular queue details"),
166+
QueueName: "",
167+
},
168+
}
169+
for _, testcase := range testCases {
170+
err := ListQueue()
171+
if err != nil && err.Error() != testcase.ExpectValue.Error() {
172+
t.Errorf("(%s): expected: %v, got %v ", testcase.Name, testcase.ExpectValue, err)
173+
}
174+
}
175+
}

0 commit comments

Comments
 (0)