Add test cases of models.Packages

This commit is contained in:
Kota Kanbe
2017-05-21 19:22:19 +09:00
committed by kota kanbe
parent 74805c6be8
commit eb02bdd95a
2 changed files with 89 additions and 1 deletions

View File

@@ -48,7 +48,7 @@ func (ps Packages) MergeNewVersion(as Packages) {
// Merge returns merged map (immutable)
func (ps Packages) Merge(other Packages) Packages {
merged := map[string]Package{}
merged := Packages{}
for k, v := range ps {
merged[k] = v
}

View File

@@ -57,3 +57,91 @@ func TestMergeNewVersion(t *testing.T) {
t.Errorf("expected %s, actual %s", e, a)
}
}
func TestMerge(t *testing.T) {
var test = struct {
a Packages
b Packages
expected Packages
}{
Packages{
"hoge": {Name: "hoge"},
"fuga": {Name: "fuga"},
},
Packages{
"hega": {Name: "hega"},
"hage": {Name: "hage"},
},
Packages{
"hoge": {Name: "hoge"},
"fuga": {Name: "fuga"},
"hega": {Name: "hega"},
"hage": {Name: "hage"},
},
}
actual := test.a.Merge(test.b)
if !reflect.DeepEqual(actual, test.expected) {
e := pp.Sprintf("%v", test.expected)
a := pp.Sprintf("%v", actual)
t.Errorf("expected %s, actual %s", e, a)
}
}
func TestFormatVersionsFromTo(t *testing.T) {
var tests = []struct {
packs Packages
expected string
}{
{
packs: Packages{
"hoge": {
Name: "hoge",
Version: "1.0.0",
Release: "release1",
NewVersion: "1.0.1",
NewRelease: "release2",
},
},
expected: "hoge-1.0.0-release1 -> hoge-1.0.1-release2",
},
{
packs: Packages{
"hoge": {
Name: "hoge",
Version: "1.0.0",
Release: "",
NewVersion: "1.0.1",
NewRelease: "",
},
},
expected: "hoge-1.0.0 -> hoge-1.0.1",
},
{
packs: Packages{
"hoge": {
Name: "hoge",
Version: "1.0.0",
Release: "",
NewVersion: "1.0.1",
NewRelease: "",
},
"fuga": {
Name: "fuga",
Version: "2.0.0",
Release: "",
NewVersion: "2.0.1",
NewRelease: "",
},
},
expected: "hoge-1.0.0 -> hoge-1.0.1\nfuga-2.0.0 -> fuga-2.0.1",
},
}
for _, tt := range tests {
actual := tt.packs.FormatVersionsFromTo()
if !reflect.DeepEqual(tt.expected, actual) {
t.Errorf("\nexpected: %v\n actual: %v\n", tt.expected, actual)
}
}
}