Skip to content

Commit 240986b

Browse files
committed
Combine tests.
1 parent bf098c4 commit 240986b

File tree

1 file changed

+37
-25
lines changed

1 file changed

+37
-25
lines changed

modules/packages/nuget/metadata_test.go

+37-25
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package nuget
66
import (
77
"archive/zip"
88
"bytes"
9-
"strings"
109
"testing"
1110

1211
"github.com/stretchr/testify/assert"
@@ -19,6 +18,7 @@ const (
1918
projectURL = "https://gitea.io"
2019
description = "Package Description"
2120
releaseNotes = "Package Release Notes"
21+
readme = "Readme"
2222
repositoryURL = "https://gitea.io/gitea/gitea"
2323
targetFramework = ".NETStandard2.1"
2424
dependencyID = "System.Text.Json"
@@ -36,6 +36,7 @@ const nuspecContent = `<?xml version="1.0" encoding="utf-8"?>
3636
<description>` + description + `</description>
3737
<releaseNotes>` + releaseNotes + `</releaseNotes>
3838
<repository url="` + repositoryURL + `" />
39+
<readme>README.md</readme>
3940
<dependencies>
4041
<group targetFramework="` + targetFramework + `">
4142
<dependency id="` + dependencyID + `" version="` + dependencyVersion + `" exclude="Build,Analyzers" />
@@ -60,75 +61,81 @@ const symbolsNuspecContent = `<?xml version="1.0" encoding="utf-8"?>
6061
</package>`
6162

6263
func TestParsePackageMetaData(t *testing.T) {
63-
createArchive := func(name, content string) []byte {
64+
createArchive := func(files map[string]string) []byte {
6465
var buf bytes.Buffer
6566
archive := zip.NewWriter(&buf)
66-
w, _ := archive.Create(name)
67-
w.Write([]byte(content))
67+
for name, content := range files {
68+
w, _ := archive.Create(name)
69+
w.Write([]byte(content))
70+
}
6871
archive.Close()
6972
return buf.Bytes()
7073
}
7174

7275
t.Run("MissingNuspecFile", func(t *testing.T) {
73-
data := createArchive("dummy.txt", "")
76+
data := createArchive(map[string]string{"dummy.txt": ""})
7477

7578
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
7679
assert.Nil(t, np)
7780
assert.ErrorIs(t, err, ErrMissingNuspecFile)
7881
})
7982

8083
t.Run("MissingNuspecFileInRoot", func(t *testing.T) {
81-
data := createArchive("sub/package.nuspec", "")
84+
data := createArchive(map[string]string{"sub/package.nuspec": ""})
8285

8386
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
8487
assert.Nil(t, np)
8588
assert.ErrorIs(t, err, ErrMissingNuspecFile)
8689
})
8790

8891
t.Run("InvalidNuspecFile", func(t *testing.T) {
89-
data := createArchive("package.nuspec", "")
92+
data := createArchive(map[string]string{"package.nuspec": ""})
9093

9194
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
9295
assert.Nil(t, np)
9396
assert.Error(t, err)
9497
})
9598

9699
t.Run("InvalidPackageId", func(t *testing.T) {
97-
data := createArchive("package.nuspec", `<?xml version="1.0" encoding="utf-8"?>
100+
data := createArchive(map[string]string{"package.nuspec": `<?xml version="1.0" encoding="utf-8"?>
98101
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
99102
<metadata></metadata>
100-
</package>`)
103+
</package>`})
101104

102105
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
103106
assert.Nil(t, np)
104107
assert.ErrorIs(t, err, ErrNuspecInvalidID)
105108
})
106109

107110
t.Run("InvalidPackageVersion", func(t *testing.T) {
108-
data := createArchive("package.nuspec", `<?xml version="1.0" encoding="utf-8"?>
111+
data := createArchive(map[string]string{"package.nuspec": `<?xml version="1.0" encoding="utf-8"?>
109112
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
110113
<metadata>
111-
<id>`+id+`</id>
114+
<id>` + id + `</id>
112115
</metadata>
113-
</package>`)
116+
</package>`})
114117

115118
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
116119
assert.Nil(t, np)
117120
assert.ErrorIs(t, err, ErrNuspecInvalidVersion)
118121
})
119122

120-
t.Run("Valid", func(t *testing.T) {
121-
data := createArchive("package.nuspec", nuspecContent)
123+
t.Run("MissingReadme", func(t *testing.T) {
124+
data := createArchive(map[string]string{"package.nuspec": nuspecContent})
122125

123126
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
124127
assert.NoError(t, err)
125128
assert.NotNil(t, np)
129+
assert.Empty(t, np.Metadata.Readme)
126130
})
127-
}
128131

129-
func TestParseNuspecMetaData(t *testing.T) {
130132
t.Run("Dependency Package", func(t *testing.T) {
131-
np, err := ParseNuspecMetaData(strings.NewReader(nuspecContent))
133+
data := createArchive(map[string]string{
134+
"package.nuspec": nuspecContent,
135+
"README.md": readme,
136+
})
137+
138+
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
132139
assert.NoError(t, err)
133140
assert.NotNil(t, np)
134141
assert.Equal(t, DependencyPackage, np.PackageType)
@@ -139,6 +146,7 @@ func TestParseNuspecMetaData(t *testing.T) {
139146
assert.Equal(t, projectURL, np.Metadata.ProjectURL)
140147
assert.Equal(t, description, np.Metadata.Description)
141148
assert.Equal(t, releaseNotes, np.Metadata.ReleaseNotes)
149+
assert.Equal(t, readme, np.Metadata.Readme)
142150
assert.Equal(t, repositoryURL, np.Metadata.RepositoryURL)
143151
assert.Len(t, np.Metadata.Dependencies, 1)
144152
assert.Contains(t, np.Metadata.Dependencies, targetFramework)
@@ -148,21 +156,25 @@ func TestParseNuspecMetaData(t *testing.T) {
148156
assert.Equal(t, dependencyVersion, deps[0].Version)
149157

150158
t.Run("NormalizedVersion", func(t *testing.T) {
151-
np, err := ParseNuspecMetaData(strings.NewReader(`<?xml version="1.0" encoding="utf-8"?>
152-
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
153-
<metadata>
154-
<id>test</id>
155-
<version>1.04.5.2.5-rc.1+metadata</version>
156-
</metadata>
157-
</package>`))
159+
data := createArchive(map[string]string{"package.nuspec": `<?xml version="1.0" encoding="utf-8"?>
160+
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
161+
<metadata>
162+
<id>test</id>
163+
<version>1.04.5.2.5-rc.1+metadata</version>
164+
</metadata>
165+
</package>`})
166+
167+
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
158168
assert.NoError(t, err)
159169
assert.NotNil(t, np)
160170
assert.Equal(t, "1.4.5.2-rc.1", np.Version)
161171
})
162172
})
163173

164174
t.Run("Symbols Package", func(t *testing.T) {
165-
np, err := ParseNuspecMetaData(strings.NewReader(symbolsNuspecContent))
175+
data := createArchive(map[string]string{"package.nuspec": symbolsNuspecContent})
176+
177+
np, err := ParsePackageMetaData(bytes.NewReader(data), int64(len(data)))
166178
assert.NoError(t, err)
167179
assert.NotNil(t, np)
168180
assert.Equal(t, SymbolsPackage, np.PackageType)

0 commit comments

Comments
 (0)