Skip to content

Commit 87c7b6d

Browse files
authored
Merge pull request #67 from mlosicki/feature/get-branch-response
feat: add GetBranchResponse
2 parents dff2223 + 4d3afe3 commit 87c7b6d

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

api_response.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,13 @@ func GetBranchesResponse(r *APIResponse) ([]Branch, error) {
554554
return m, err
555555
}
556556

557+
// GetBrancheResponse cast Branch into structure
558+
func GetBranchResponse(r *APIResponse) (Branch, error) {
559+
var m Branch
560+
err := mapstructure.Decode(r.Values, &m)
561+
return m, err
562+
}
563+
557564
// GetRepositoriesResponse cast Repositories into structure
558565
func GetRepositoriesResponse(r *APIResponse) ([]Repository, error) {
559566
var m []Repository

api_response_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,55 @@ func TestGetBranchesResponse(t *testing.T) {
115115
}
116116
}
117117

118+
func TestGetBranchResponse(t *testing.T) {
119+
type args struct {
120+
r *APIResponse
121+
}
122+
tests := []struct {
123+
name string
124+
args args
125+
want Branch
126+
wantErr bool
127+
}{
128+
{
129+
name: "Single branch",
130+
args: args{
131+
r: &APIResponse{
132+
Values: map[string]interface{}{
133+
"id": "refs/heads/main",
134+
"displayId": "main",
135+
"type": "BRANCH",
136+
"latestCommit": "8d51122def5632836d1cb1026e879069e10a1e13",
137+
"latestChangeset": "8d51122def5632836d1cb1026e879069e10a1e13",
138+
"isDefault": true,
139+
},
140+
},
141+
},
142+
want: Branch{
143+
ID: "refs/heads/main",
144+
DisplayID: "main",
145+
Type: "BRANCH",
146+
LatestCommit: "8d51122def5632836d1cb1026e879069e10a1e13",
147+
LatestChangeset: "8d51122def5632836d1cb1026e879069e10a1e13",
148+
IsDefault: true,
149+
},
150+
wantErr: false,
151+
},
152+
}
153+
for _, tt := range tests {
154+
t.Run(tt.name, func(t *testing.T) {
155+
got, err := GetBranchResponse(tt.args.r)
156+
if (err != nil) != tt.wantErr {
157+
t.Errorf("GetBranchResponse() error = %v, wantErr %v", err, tt.wantErr)
158+
return
159+
}
160+
if !reflect.DeepEqual(got, tt.want) {
161+
t.Errorf("GetBranchResponse() = %v, want %v", got, tt.want)
162+
}
163+
})
164+
}
165+
}
166+
118167
func TestGetRepositoriesResponse(t *testing.T) {
119168
type args struct {
120169
r *APIResponse

0 commit comments

Comments
 (0)