66 "net/http"
77 "net/http/httptest"
88 "net/url"
9+ "reflect"
910 "testing"
1011
1112 "github.com/deis/workflow/client/controller/client"
@@ -18,6 +19,7 @@ const passwdExpected string = `{"username":"test","password":"old","new_password
1819const regenAllExpected string = `{"all":true}`
1920const regenUserExpected string = `{"username":"test"}`
2021const cancelUserExpected string = `{"username":"foo"}`
22+ const cancelAdminExpected string = `{"username":"admin"}`
2123
2224type fakeHTTPServer struct {
2325 regenBodyEmpty bool
@@ -131,7 +133,12 @@ func (f *fakeHTTPServer) ServeHTTP(res http.ResponseWriter, req *http.Request) {
131133 res .Write (nil )
132134 }
133135
134- if string (body ) == cancelUserExpected && ! f .cancelUsername {
136+ if string (body ) == cancelAdminExpected && ! f .cancelUsername {
137+ f .cancelUsername = true
138+ res .WriteHeader (http .StatusConflict )
139+ res .Write (nil )
140+ return
141+ } else if string (body ) == cancelUserExpected && ! f .cancelUsername {
135142 f .cancelUsername = true
136143 res .WriteHeader (http .StatusNoContent )
137144 res .Write (nil )
@@ -251,6 +258,31 @@ func TestDelete(t *testing.T) {
251258 }
252259}
253260
261+ func TestDeleteUserApp (t * testing.T ) {
262+ t .Parallel ()
263+
264+ handler := fakeHTTPServer {cancelUsername : false , cancelEmpty : false }
265+ server := httptest .NewServer (& handler )
266+ defer server .Close ()
267+
268+ u , err := url .Parse (server .URL )
269+
270+ if err != nil {
271+ t .Fatal (err )
272+ }
273+
274+ httpClient := client .CreateHTTPClient (false )
275+ client := client.Client {HTTPClient : httpClient , ControllerURL : * u }
276+
277+ err = Delete (& client , "admin" )
278+ // should be a 409 Conflict
279+
280+ expected := fmt .Errorf ("\n %s %s\n \n " , "409" , "Conflict" )
281+ if reflect .DeepEqual (err , expected ) == false {
282+ t .Errorf ("got '%s' but expected '%s'" , err , expected )
283+ }
284+ }
285+
254286func TestRegenerate (t * testing.T ) {
255287 t .Parallel ()
256288
0 commit comments