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