mirror of
https://github.com/google/go-github.git
synced 2026-10-28 16:34:37 +08:00
230 lines
4.3 KiB
Go
230 lines
4.3 KiB
Go
// Copyright 2021 The go-github AUTHORS. All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package github
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
)
|
|
|
|
func TestPackageVersion_GetBody(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := map[string]struct {
|
|
pv *PackageVersion
|
|
wantValue string
|
|
wantOk bool
|
|
}{
|
|
"pv nil": {
|
|
pv: nil,
|
|
wantValue: "",
|
|
wantOk: false,
|
|
},
|
|
"body nil": {
|
|
pv: &PackageVersion{
|
|
Body: nil,
|
|
},
|
|
wantValue: "",
|
|
wantOk: false,
|
|
},
|
|
"invalid body": {
|
|
pv: &PackageVersion{
|
|
Body: json.RawMessage(`{
|
|
"repository": {
|
|
"name": "n"
|
|
},
|
|
"info": {
|
|
"type": "t"
|
|
}
|
|
}`),
|
|
},
|
|
wantValue: "",
|
|
wantOk: false,
|
|
},
|
|
"valid body": {
|
|
pv: &PackageVersion{
|
|
Body: json.RawMessage(`"body"`),
|
|
},
|
|
wantValue: "body",
|
|
wantOk: true,
|
|
},
|
|
}
|
|
|
|
for name, test := range tests {
|
|
t.Run(name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
resValue, resOk := test.pv.GetBody()
|
|
|
|
if resValue != test.wantValue || resOk != test.wantOk {
|
|
t.Errorf("PackageVersion.GetBody() - got: %v, %v; want: %v, %v", resValue, resOk, test.wantValue, test.wantOk)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPackageVersion_GetBodyAsPackageVersionBody(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := map[string]struct {
|
|
pv *PackageVersion
|
|
wantValue *PackageVersionBody
|
|
wantOk bool
|
|
}{
|
|
"pv nil": {
|
|
pv: nil,
|
|
wantValue: nil,
|
|
wantOk: false,
|
|
},
|
|
"body nil": {
|
|
pv: &PackageVersion{
|
|
Body: nil,
|
|
},
|
|
wantValue: nil,
|
|
wantOk: false,
|
|
},
|
|
"invalid body": {
|
|
pv: &PackageVersion{
|
|
Body: json.RawMessage(`"body"`),
|
|
},
|
|
wantValue: nil,
|
|
wantOk: false,
|
|
},
|
|
"valid body": {
|
|
pv: &PackageVersion{
|
|
Body: json.RawMessage(`{
|
|
"repository": {
|
|
"name": "n"
|
|
},
|
|
"info": {
|
|
"type": "t"
|
|
}
|
|
}`),
|
|
},
|
|
wantValue: &PackageVersionBody{
|
|
Repo: &Repository{
|
|
Name: new("n"),
|
|
},
|
|
Info: &PackageVersionBodyInfo{
|
|
Type: new("t"),
|
|
},
|
|
},
|
|
wantOk: true,
|
|
},
|
|
}
|
|
|
|
for name, test := range tests {
|
|
t.Run(name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
resValue, resOk := test.pv.GetBodyAsPackageVersionBody()
|
|
|
|
if !cmp.Equal(resValue, test.wantValue) || resOk != test.wantOk {
|
|
t.Errorf("PackageVersion.GetBodyAsPackageVersionBody() - got: %v, %v; want: %v, %v", resValue, resOk, test.wantValue, test.wantOk)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPackageVersion_GetMetadata(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := map[string]struct {
|
|
pv *PackageVersion
|
|
wantValue *PackageMetadata
|
|
wantOk bool
|
|
}{
|
|
"pv nil": {
|
|
pv: nil,
|
|
wantValue: nil,
|
|
wantOk: false,
|
|
},
|
|
"metadata nil": {
|
|
pv: &PackageVersion{
|
|
Metadata: nil,
|
|
},
|
|
wantValue: nil,
|
|
wantOk: false,
|
|
},
|
|
"invalid metadata": {
|
|
pv: &PackageVersion{
|
|
Metadata: json.RawMessage(`[]`),
|
|
},
|
|
wantValue: nil,
|
|
wantOk: false,
|
|
},
|
|
"valid metadata": {
|
|
pv: &PackageVersion{
|
|
Metadata: json.RawMessage(`{
|
|
"package_type": "container",
|
|
"container": {
|
|
"tags": ["a"]
|
|
}
|
|
}`),
|
|
},
|
|
wantValue: &PackageMetadata{
|
|
PackageType: new("container"),
|
|
Container: &PackageContainerMetadata{
|
|
Tags: []string{"a"},
|
|
},
|
|
},
|
|
wantOk: true,
|
|
},
|
|
}
|
|
|
|
for name, test := range tests {
|
|
t.Run(name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
resValue, resOk := test.pv.GetMetadata()
|
|
|
|
if !cmp.Equal(resValue, test.wantValue) || resOk != test.wantOk {
|
|
t.Errorf("PackageVersion.GetMetadata() - got: %v, %v; want: %v, %v", resValue, resOk, test.wantValue, test.wantOk)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPackageVersion_GetRawMetadata(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := map[string]struct {
|
|
pv *PackageVersion
|
|
want json.RawMessage
|
|
}{
|
|
"pv nil": {
|
|
pv: nil,
|
|
want: nil,
|
|
},
|
|
"metadata nil": {
|
|
pv: &PackageVersion{
|
|
Metadata: nil,
|
|
},
|
|
want: json.RawMessage{},
|
|
},
|
|
"valid metadata": {
|
|
pv: &PackageVersion{
|
|
Metadata: json.RawMessage(`"a"`),
|
|
},
|
|
want: json.RawMessage(`"a"`),
|
|
},
|
|
}
|
|
|
|
for name, test := range tests {
|
|
t.Run(name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
res := test.pv.GetRawMetadata()
|
|
|
|
if string(res) != string(test.want) {
|
|
t.Errorf("PackageVersion.GetRawMetadata() - got: %v; want: %v", res, test.want)
|
|
}
|
|
})
|
|
}
|
|
}
|