@@ -12,6 +12,7 @@ import (
1212
1313 "github.com/deis/workflow-cli/pkg/git"
1414 "github.com/deis/workflow-cli/pkg/testutil"
15+ "github.com/deis/workflow-cli/settings"
1516)
1617
1718type expandURLCases struct {
@@ -106,6 +107,161 @@ lorem-ipsum
106107` , "output" )
107108}
108109
110+ func TestAppsInfo (t * testing.T ) {
111+ t .Parallel ()
112+ cf , server , err := testutil .NewTestServerAndClient ()
113+ if err != nil {
114+ t .Fatal (err )
115+ }
116+ defer server .Close ()
117+ var b bytes.Buffer
118+ cmdr := DeisCmd {WOut : & b , ConfigFile : cf }
119+
120+ server .Mux .HandleFunc ("/v2/apps/lorem-ipsum/" , func (w http.ResponseWriter , r * http.Request ) {
121+ testutil .SetHeaders (w )
122+ fmt .Fprintf (w , `{
123+ "uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
124+ "id": "lorem-ipsum",
125+ "owner": "dolar-sit-amet",
126+ "structure": {
127+ "cmd": 1
128+ },
129+ "created": "2016-08-22T17:40:16Z",
130+ "updated": "2016-08-22T17:40:16Z"
131+ }` )
132+ })
133+
134+ server .Mux .HandleFunc ("/v2/apps/lorem-ipsum/pods/" , func (w http.ResponseWriter , r * http.Request ) {
135+ testutil .SetHeaders (w )
136+ fmt .Fprintf (w , `{
137+ "count": 1,
138+ "results": [
139+ {
140+ "state": "up",
141+ "started": "2016-08-22T17:42:16Z",
142+ "name": "lorem-ipsum-cmd-1911796442-48b58",
143+ "release": "v2",
144+ "type": "cmd"
145+ }
146+ ]
147+ }` )
148+ })
149+
150+ server .Mux .HandleFunc ("/v2/apps/lorem-ipsum/domains/" , func (w http.ResponseWriter , r * http.Request ) {
151+ testutil .SetHeaders (w )
152+ fmt .Fprintf (w , `{
153+ "count": 1,
154+ "next": null,
155+ "previous": null,
156+ "results": [
157+ {
158+ "owner": "dolar-sit-amet",
159+ "created": "2016-08-22T17:40:16Z",
160+ "updated": "2016-08-22T17:40:16Z",
161+ "app": "lorem-ipsum",
162+ "domain": "lorem-ipsum"
163+ }
164+ ]
165+ }` )
166+ })
167+
168+ s , err := settings .Load (cmdr .ConfigFile )
169+ if err != nil {
170+ t .Fatal (err )
171+ }
172+
173+ url , err := cmdr .appURL (s , "lorem-ipsum" )
174+ if err != nil {
175+ t .Fatal (err )
176+ }
177+
178+ if url == "" {
179+ url = fmt .Sprintf (noDomainAssignedMsg , "lorem-ipsum" )
180+ }
181+
182+ err = cmdr .AppInfo ("lorem-ipsum" )
183+ assert .NoErr (t , err )
184+ assert .Equal (t , b .String (), `=== lorem-ipsum Application
185+ updated: 2016-08-22T17:40:16Z
186+ uuid: c4aed81c-d1ca-4ff1-ab89-d2151264e1a3
187+ created: 2016-08-22T17:40:16Z
188+ url: ` + url + `
189+ owner: dolar-sit-amet
190+ id: lorem-ipsum
191+
192+ === lorem-ipsum Processes
193+ --- cmd:
194+ lorem-ipsum-cmd-1911796442-48b58 up (v2)
195+
196+ === lorem-ipsum Domains
197+ lorem-ipsum
198+
199+ ` , "output" )
200+ }
201+
202+ func TestAppDestroy (t * testing.T ) {
203+ t .Parallel ()
204+ cf , server , err := testutil .NewTestServerAndClient ()
205+ if err != nil {
206+ t .Fatal (err )
207+ }
208+ defer server .Close ()
209+ var b bytes.Buffer
210+ cmdr := DeisCmd {WOut : & b , ConfigFile : cf }
211+
212+ server .Mux .HandleFunc ("/v2/apps/lorem-ipsum/" , func (w http.ResponseWriter , r * http.Request ) {
213+ testutil .SetHeaders (w )
214+ fmt .Fprintf (w , `{
215+ "uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
216+ "id": "lorem-ipsum",
217+ "owner": "dolar-sit-amet",
218+ "structure": {
219+ "cmd": 1
220+ },
221+ "created": "2016-08-22T17:40:16Z",
222+ "updated": "2016-08-22T17:40:16Z"
223+ }` )
224+ })
225+ err = cmdr .AppDestroy ("lorem-ipsum" , "bad-confirm-string" )
226+ assert .Equal (t , err .Error (), `App lorem-ipsum does not match confirm bad-confirm-string, aborting.` , "output" )
227+
228+ err = cmdr .AppDestroy ("lorem-ipsum" , "lorem-ipsum" )
229+ assert .NoErr (t , err )
230+ assert .Equal (t , testutil .StripProgress (b .String ()), `Destroying lorem-ipsum...
231+ done in 0s
232+ ` , "output" )
233+ }
234+
235+ func TestAppTransfer (t * testing.T ) {
236+ t .Parallel ()
237+ cf , server , err := testutil .NewTestServerAndClient ()
238+ if err != nil {
239+ t .Fatal (err )
240+ }
241+ defer server .Close ()
242+ var b bytes.Buffer
243+ cmdr := DeisCmd {WOut : & b , ConfigFile : cf }
244+
245+ server .Mux .HandleFunc ("/v2/apps/lorem-ipsum/" , func (w http.ResponseWriter , r * http.Request ) {
246+ testutil .SetHeaders (w )
247+ fmt .Fprintf (w , `{
248+ "uuid": "c4aed81c-d1ca-4ff1-ab89-d2151264e1a3",
249+ "id": "lorem-ipsum",
250+ "owner": "dolar-sit-amet",
251+ "structure": {
252+ "cmd": 1
253+ },
254+ "created": "2016-08-22T17:40:16Z",
255+ "updated": "2016-08-22T17:40:16Z"
256+ }` )
257+ })
258+
259+ err = cmdr .AppTransfer ("lorem-ipsum" , "test-user" )
260+ assert .NoErr (t , err )
261+ assert .Equal (t , testutil .StripProgress (b .String ()), `Transferring lorem-ipsum to test-user... done
262+ ` , "output" )
263+ }
264+
109265func TestExpandUrl (t * testing.T ) {
110266 checks := []expandURLCases {
111267 {
0 commit comments