1
1
package gapi
2
2
3
3
import (
4
+ "strings"
4
5
"testing"
5
6
6
7
"github.com/gobs/pretty"
@@ -55,8 +56,86 @@ const (
55
56
56
57
updatedRoleResponse = `{"message":"Role updated"}`
57
58
deleteRoleResponse = `{"message":"Role deleted"}`
59
+
60
+ roleUID = "vc3SCSsGz"
58
61
)
59
62
63
+ func TestRoles (t * testing.T ) {
64
+ mockData := strings .Repeat (getRoleResponse + "," , 1000 ) // make 1000 roles.
65
+ mockData = "[" + mockData [:len (mockData )- 1 ] + "]" // remove trailing comma; make a json list.
66
+
67
+ // This creates 1000 + 1000 + 1 (2001, 3 calls) worth of roles.
68
+ client := gapiTestToolsFromCalls (t , []mockServerCall {
69
+ {200 , mockData },
70
+ {200 , mockData },
71
+ {200 , "[" + getRoleResponse + "]" },
72
+ })
73
+
74
+ const dashCount = 2001
75
+
76
+ roles , err := client .GetRoles ()
77
+ if err != nil {
78
+ t .Fatal (err )
79
+ }
80
+
81
+ t .Log (pretty .PrettyFormat (roles ))
82
+
83
+ if len (roles ) != dashCount {
84
+ t .Fatalf ("Length of returned roles should be %d" , dashCount )
85
+ }
86
+ if roles [0 ].UID != roleUID || roles [0 ].Name != "test:policy" {
87
+ t .Error ("Not correctly parsing returned roles." )
88
+ }
89
+ if roles [dashCount - 1 ].UID != roleUID || roles [dashCount - 1 ].Name != "test:policy" {
90
+ t .Error ("Not correctly parsing returned roles." )
91
+ }
92
+ }
93
+
94
+ func TestRolesZeroResults (t * testing.T ) {
95
+ // This return zero roles.
96
+ client := gapiTestToolsFromCalls (t , []mockServerCall {
97
+ {200 , "[]" },
98
+ })
99
+
100
+ roles , err := client .GetRoles ()
101
+ if err != nil {
102
+ t .Fatal (err )
103
+ }
104
+
105
+ if len (roles ) != 0 {
106
+ t .Errorf ("Length of returned roles should be zero" )
107
+ }
108
+ }
109
+
110
+ func TestRolesSinglePage (t * testing.T ) {
111
+ mockData := strings .Repeat (getRoleResponse + "," , 999 ) // make 999 roles.
112
+ mockData = "[" + mockData [:len (mockData )- 1 ] + "]" // remove trailing comma; make a json list.
113
+
114
+ // This creates 999 worth of roles.
115
+ client := gapiTestToolsFromCalls (t , []mockServerCall {
116
+ {200 , mockData },
117
+ })
118
+
119
+ const dashCount = 999
120
+
121
+ roles , err := client .GetRoles ()
122
+ if err != nil {
123
+ t .Fatal (err )
124
+ }
125
+
126
+ t .Log (pretty .PrettyFormat (roles ))
127
+
128
+ if len (roles ) != dashCount {
129
+ t .Fatalf ("Length of returned roles should be %d" , dashCount )
130
+ }
131
+ if roles [0 ].UID != roleUID || roles [0 ].Name != "test:policy" {
132
+ t .Error ("Not correctly parsing returned roles." )
133
+ }
134
+ if roles [dashCount - 1 ].UID != roleUID || roles [dashCount - 1 ].Name != "test:policy" {
135
+ t .Error ("Not correctly parsing returned roles." )
136
+ }
137
+ }
138
+
60
139
func TestNewRole (t * testing.T ) {
61
140
client := gapiTestTools (t , 201 , newRoleResponse )
62
141
@@ -79,26 +158,23 @@ func TestNewRole(t *testing.T) {
79
158
80
159
t .Log (pretty .PrettyFormat (resp ))
81
160
82
- if resp .UID != "vc3SCSsGz" {
161
+ if resp .UID != roleUID {
83
162
t .Error ("Not correctly parsing returned role uid." )
84
163
}
85
164
}
86
165
87
166
func TestGetRole (t * testing.T ) {
88
167
client := gapiTestTools (t , 200 , getRoleResponse )
89
168
90
- uid := "vc3SCSsGz"
91
-
92
- resp , err := client .GetRole (uid )
93
-
169
+ resp , err := client .GetRole (roleUID )
94
170
if err != nil {
95
171
t .Error (err )
96
172
}
97
173
98
174
expected := Role {
99
175
Global : false ,
100
176
Version : 1 ,
101
- UID : "vc3SCSsGz" ,
177
+ UID : roleUID ,
102
178
Name : "test:policy" ,
103
179
Description : "Test policy description" ,
104
180
Group : "test group" ,
@@ -143,7 +219,7 @@ func TestUpdateRole(t *testing.T) {
143
219
func TestDeleteRole (t * testing.T ) {
144
220
client := gapiTestTools (t , 200 , deleteRoleResponse )
145
221
146
- err := client .DeleteRole ("vc3SCSsGz" , false )
222
+ err := client .DeleteRole (roleUID , false )
147
223
if err != nil {
148
224
t .Error (err )
149
225
}
0 commit comments