Skip to content

Commit

Permalink
Merge pull request #4 from joonas/add-list-teams
Browse files Browse the repository at this point in the history
Add ListTeams method
  • Loading branch information
vito committed Jan 24, 2017
2 parents b78e4c8 + 907b8f4 commit 0da7ba3
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 0 deletions.
1 change: 1 addition & 0 deletions concourse/client.go
Expand Up @@ -31,6 +31,7 @@ type Client interface {
GetInfo() (atc.Info, error)
GetCLIReader(arch, platform string) (io.ReadCloser, http.Header, error)
ListPipelines() ([]atc.Pipeline, error)
ListTeams() ([]atc.Team, error)

Team(teamName string) Team
}
Expand Down
34 changes: 34 additions & 0 deletions concourse/concoursefakes/fake_client.go
Expand Up @@ -163,6 +163,13 @@ type FakeClient struct {
result1 []atc.Pipeline
result2 error
}
ListTeamsStub func() ([]atc.Team, error)
listTeamsMutex sync.RWMutex
listTeamsArgsForCall []struct{}
listTeamsReturns struct {
result1 []atc.Team
result2 error
}
TeamStub func(teamName string) concourse.Team
teamMutex sync.RWMutex
teamArgsForCall []struct {
Expand Down Expand Up @@ -734,6 +741,31 @@ func (fake *FakeClient) ListPipelinesReturns(result1 []atc.Pipeline, result2 err
}{result1, result2}
}

func (fake *FakeClient) ListTeams() ([]atc.Team, error) {
fake.listTeamsMutex.Lock()
fake.listTeamsArgsForCall = append(fake.listTeamsArgsForCall, struct{}{})
fake.recordInvocation("ListTeams", []interface{}{})
fake.listTeamsMutex.Unlock()
if fake.ListTeamsStub != nil {
return fake.ListTeamsStub()
}
return fake.listTeamsReturns.result1, fake.listTeamsReturns.result2
}

func (fake *FakeClient) ListTeamsCallCount() int {
fake.listTeamsMutex.RLock()
defer fake.listTeamsMutex.RUnlock()
return len(fake.listTeamsArgsForCall)
}

func (fake *FakeClient) ListTeamsReturns(result1 []atc.Team, result2 error) {
fake.ListTeamsStub = nil
fake.listTeamsReturns = struct {
result1 []atc.Team
result2 error
}{result1, result2}
}

func (fake *FakeClient) Team(teamName string) concourse.Team {
fake.teamMutex.Lock()
fake.teamArgsForCall = append(fake.teamArgsForCall, struct {
Expand Down Expand Up @@ -806,6 +838,8 @@ func (fake *FakeClient) Invocations() map[string][][]interface{} {
defer fake.getCLIReaderMutex.RUnlock()
fake.listPipelinesMutex.RLock()
defer fake.listPipelinesMutex.RUnlock()
fake.listTeamsMutex.RLock()
defer fake.listTeamsMutex.RUnlock()
fake.teamMutex.RLock()
defer fake.teamMutex.RUnlock()
return fake.invocations
Expand Down
11 changes: 11 additions & 0 deletions concourse/teams.go
Expand Up @@ -69,3 +69,14 @@ func (team *team) DestroyTeam(teamName string) error {

return err
}

func (client *client) ListTeams() ([]atc.Team, error) {
var teams []atc.Team
err := client.connection.Send(internal.Request{
RequestName: atc.ListTeams,
}, &internal.Response{
Result: &teams,
})

return teams, err
}
36 changes: 36 additions & 0 deletions concourse/teams_test.go
Expand Up @@ -149,4 +149,40 @@ var _ = Describe("ATC Handler Teams", func() {
})
})
})

Describe("ListTeams", func() {
var expectedTeams []atc.Team

BeforeEach(func() {
expectedURL := "/api/v1/teams"

expectedTeams = []atc.Team{
{
ID: 1,
Name: "main",
},
{
ID: 2,
Name: "a-team",
},
{
ID: 3,
Name: "b-team",
},
}

atcServer.AppendHandlers(
ghttp.CombineHandlers(
ghttp.VerifyRequest("GET", expectedURL),
ghttp.RespondWithJSONEncoded(http.StatusOK, expectedTeams),
),
)
})

It("returns all of the teams", func() {
teams, err := client.ListTeams()
Expect(err).NotTo(HaveOccurred())
Expect(teams).To(Equal(expectedTeams))
})
})
})

0 comments on commit 0da7ba3

Please sign in to comment.