1// Copyright (c) 2015 Ableton AG, Berlin. All rights reserved. 2// 3// Use of this source code is governed by a BSD-style 4// license that can be found in the LICENSE file. 5 6package travis 7 8import ( 9 "context" 10 "fmt" 11 "net/http" 12 "reflect" 13 "testing" 14) 15 16func TestStagesService_ListByBuild(t *testing.T) { 17 client, mux, _, teardown := setup() 18 defer teardown() 19 20 var buildId uint = 10 21 mux.HandleFunc(fmt.Sprintf("/build/%d/stages", buildId), func(w http.ResponseWriter, r *http.Request) { 22 testMethod(t, r, http.MethodGet) 23 testFormValues(t, r, values{"include": "stage.jobs"}) 24 fmt.Fprint(w, `{"stages": [{"id":1,"number":2,"name":"Test"}]}`) 25 }) 26 27 opt := StagesOption{Include: []string{"stage.jobs"}} 28 stages, _, err := client.Stages.ListByBuild(context.Background(), buildId, &opt) 29 30 if err != nil { 31 t.Errorf("Repository.List returned error: %v", err) 32 } 33 34 want := &Stage{Id: 1, Number: 2, Name: "Test"} 35 if !reflect.DeepEqual(stages[0], want) { 36 t.Errorf("Stages.ListByBuild returned %+v, want %+v", stages[0], want) 37 } 38} 39