gitea

Зеркало из https://github.com/go-gitea/gitea
Форк
0
/
main_test.go 
266 строк · 9.8 Кб
1
// Copyright 2019 The Gitea Authors. All rights reserved.
2
// Copyright 2018 Jonas Franz. All rights reserved.
3
// SPDX-License-Identifier: MIT
4

5
package migrations
6

7
import (
8
	"testing"
9
	"time"
10

11
	"code.gitea.io/gitea/models/unittest"
12
	base "code.gitea.io/gitea/modules/migration"
13

14
	"github.com/stretchr/testify/assert"
15
)
16

17
func TestMain(m *testing.M) {
18
	unittest.MainTest(m)
19
}
20

21
func timePtr(t time.Time) *time.Time {
22
	return &t
23
}
24

25
func assertTimeEqual(t *testing.T, expected, actual time.Time) {
26
	assert.Equal(t, expected.UTC(), actual.UTC())
27
}
28

29
func assertTimePtrEqual(t *testing.T, expected, actual *time.Time) {
30
	if expected == nil {
31
		assert.Nil(t, actual)
32
	} else {
33
		assert.NotNil(t, actual)
34
		assertTimeEqual(t, *expected, *actual)
35
	}
36
}
37

38
func assertCommentEqual(t *testing.T, expected, actual *base.Comment) {
39
	assert.Equal(t, expected.IssueIndex, actual.IssueIndex)
40
	assert.Equal(t, expected.PosterID, actual.PosterID)
41
	assert.Equal(t, expected.PosterName, actual.PosterName)
42
	assert.Equal(t, expected.PosterEmail, actual.PosterEmail)
43
	assertTimeEqual(t, expected.Created, actual.Created)
44
	assertTimeEqual(t, expected.Updated, actual.Updated)
45
	assert.Equal(t, expected.Content, actual.Content)
46
	assertReactionsEqual(t, expected.Reactions, actual.Reactions)
47
}
48

49
func assertCommentsEqual(t *testing.T, expected, actual []*base.Comment) {
50
	if assert.Len(t, actual, len(expected)) {
51
		for i := range expected {
52
			assertCommentEqual(t, expected[i], actual[i])
53
		}
54
	}
55
}
56

57
func assertLabelEqual(t *testing.T, expected, actual *base.Label) {
58
	assert.Equal(t, expected.Name, actual.Name)
59
	assert.Equal(t, expected.Exclusive, actual.Exclusive)
60
	assert.Equal(t, expected.Color, actual.Color)
61
	assert.Equal(t, expected.Description, actual.Description)
62
}
63

64
func assertLabelsEqual(t *testing.T, expected, actual []*base.Label) {
65
	if assert.Len(t, actual, len(expected)) {
66
		for i := range expected {
67
			assertLabelEqual(t, expected[i], actual[i])
68
		}
69
	}
70
}
71

72
func assertMilestoneEqual(t *testing.T, expected, actual *base.Milestone) {
73
	assert.Equal(t, expected.Title, actual.Title)
74
	assert.Equal(t, expected.Description, actual.Description)
75
	assertTimePtrEqual(t, expected.Deadline, actual.Deadline)
76
	assertTimeEqual(t, expected.Created, actual.Created)
77
	assertTimePtrEqual(t, expected.Updated, actual.Updated)
78
	assertTimePtrEqual(t, expected.Closed, actual.Closed)
79
	assert.Equal(t, expected.State, actual.State)
80
}
81

82
func assertMilestonesEqual(t *testing.T, expected, actual []*base.Milestone) {
83
	if assert.Len(t, actual, len(expected)) {
84
		for i := range expected {
85
			assertMilestoneEqual(t, expected[i], actual[i])
86
		}
87
	}
88
}
89

90
func assertIssueEqual(t *testing.T, expected, actual *base.Issue) {
91
	assert.Equal(t, expected.Number, actual.Number)
92
	assert.Equal(t, expected.PosterID, actual.PosterID)
93
	assert.Equal(t, expected.PosterName, actual.PosterName)
94
	assert.Equal(t, expected.PosterEmail, actual.PosterEmail)
95
	assert.Equal(t, expected.Title, actual.Title)
96
	assert.Equal(t, expected.Content, actual.Content)
97
	assert.Equal(t, expected.Ref, actual.Ref)
98
	assert.Equal(t, expected.Milestone, actual.Milestone)
99
	assert.Equal(t, expected.State, actual.State)
100
	assert.Equal(t, expected.IsLocked, actual.IsLocked)
101
	assertTimeEqual(t, expected.Created, actual.Created)
102
	assertTimeEqual(t, expected.Updated, actual.Updated)
103
	assertTimePtrEqual(t, expected.Closed, actual.Closed)
104
	assertLabelsEqual(t, expected.Labels, actual.Labels)
105
	assertReactionsEqual(t, expected.Reactions, actual.Reactions)
106
	assert.ElementsMatch(t, expected.Assignees, actual.Assignees)
107
}
108

109
func assertIssuesEqual(t *testing.T, expected, actual []*base.Issue) {
110
	if assert.Len(t, actual, len(expected)) {
111
		for i := range expected {
112
			assertIssueEqual(t, expected[i], actual[i])
113
		}
114
	}
115
}
116

117
func assertPullRequestEqual(t *testing.T, expected, actual *base.PullRequest) {
118
	assert.Equal(t, expected.Number, actual.Number)
119
	assert.Equal(t, expected.Title, actual.Title)
120
	assert.Equal(t, expected.PosterID, actual.PosterID)
121
	assert.Equal(t, expected.PosterName, actual.PosterName)
122
	assert.Equal(t, expected.PosterEmail, actual.PosterEmail)
123
	assert.Equal(t, expected.Content, actual.Content)
124
	assert.Equal(t, expected.Milestone, actual.Milestone)
125
	assert.Equal(t, expected.State, actual.State)
126
	assertTimeEqual(t, expected.Created, actual.Created)
127
	assertTimeEqual(t, expected.Updated, actual.Updated)
128
	assertTimePtrEqual(t, expected.Closed, actual.Closed)
129
	assertLabelsEqual(t, expected.Labels, actual.Labels)
130
	assert.Equal(t, expected.PatchURL, actual.PatchURL)
131
	assert.Equal(t, expected.Merged, actual.Merged)
132
	assertTimePtrEqual(t, expected.MergedTime, actual.MergedTime)
133
	assert.Equal(t, expected.MergeCommitSHA, actual.MergeCommitSHA)
134
	assertPullRequestBranchEqual(t, expected.Head, actual.Head)
135
	assertPullRequestBranchEqual(t, expected.Base, actual.Base)
136
	assert.ElementsMatch(t, expected.Assignees, actual.Assignees)
137
	assert.Equal(t, expected.IsLocked, actual.IsLocked)
138
	assertReactionsEqual(t, expected.Reactions, actual.Reactions)
139
}
140

141
func assertPullRequestsEqual(t *testing.T, expected, actual []*base.PullRequest) {
142
	if assert.Len(t, actual, len(expected)) {
143
		for i := range expected {
144
			assertPullRequestEqual(t, expected[i], actual[i])
145
		}
146
	}
147
}
148

149
func assertPullRequestBranchEqual(t *testing.T, expected, actual base.PullRequestBranch) {
150
	assert.Equal(t, expected.CloneURL, actual.CloneURL)
151
	assert.Equal(t, expected.Ref, actual.Ref)
152
	assert.Equal(t, expected.SHA, actual.SHA)
153
	assert.Equal(t, expected.RepoName, actual.RepoName)
154
	assert.Equal(t, expected.OwnerName, actual.OwnerName)
155
}
156

157
func assertReactionEqual(t *testing.T, expected, actual *base.Reaction) {
158
	assert.Equal(t, expected.UserID, actual.UserID)
159
	assert.Equal(t, expected.UserName, actual.UserName)
160
	assert.Equal(t, expected.Content, actual.Content)
161
}
162

163
func assertReactionsEqual(t *testing.T, expected, actual []*base.Reaction) {
164
	if assert.Len(t, actual, len(expected)) {
165
		for i := range expected {
166
			assertReactionEqual(t, expected[i], actual[i])
167
		}
168
	}
169
}
170

171
func assertReleaseAssetEqual(t *testing.T, expected, actual *base.ReleaseAsset) {
172
	assert.Equal(t, expected.ID, actual.ID)
173
	assert.Equal(t, expected.Name, actual.Name)
174
	assert.Equal(t, expected.ContentType, actual.ContentType)
175
	assert.Equal(t, expected.Size, actual.Size)
176
	assert.Equal(t, expected.DownloadCount, actual.DownloadCount)
177
	assertTimeEqual(t, expected.Created, actual.Created)
178
	assertTimeEqual(t, expected.Updated, actual.Updated)
179
	assert.Equal(t, expected.DownloadURL, actual.DownloadURL)
180
}
181

182
func assertReleaseAssetsEqual(t *testing.T, expected, actual []*base.ReleaseAsset) {
183
	if assert.Len(t, actual, len(expected)) {
184
		for i := range expected {
185
			assertReleaseAssetEqual(t, expected[i], actual[i])
186
		}
187
	}
188
}
189

190
func assertReleaseEqual(t *testing.T, expected, actual *base.Release) {
191
	assert.Equal(t, expected.TagName, actual.TagName)
192
	assert.Equal(t, expected.TargetCommitish, actual.TargetCommitish)
193
	assert.Equal(t, expected.Name, actual.Name)
194
	assert.Equal(t, expected.Body, actual.Body)
195
	assert.Equal(t, expected.Draft, actual.Draft)
196
	assert.Equal(t, expected.Prerelease, actual.Prerelease)
197
	assert.Equal(t, expected.PublisherID, actual.PublisherID)
198
	assert.Equal(t, expected.PublisherName, actual.PublisherName)
199
	assert.Equal(t, expected.PublisherEmail, actual.PublisherEmail)
200
	assertReleaseAssetsEqual(t, expected.Assets, actual.Assets)
201
	assertTimeEqual(t, expected.Created, actual.Created)
202
	assertTimeEqual(t, expected.Published, actual.Published)
203
}
204

205
func assertReleasesEqual(t *testing.T, expected, actual []*base.Release) {
206
	if assert.Len(t, actual, len(expected)) {
207
		for i := range expected {
208
			assertReleaseEqual(t, expected[i], actual[i])
209
		}
210
	}
211
}
212

213
func assertRepositoryEqual(t *testing.T, expected, actual *base.Repository) {
214
	assert.Equal(t, expected.Name, actual.Name)
215
	assert.Equal(t, expected.Owner, actual.Owner)
216
	assert.Equal(t, expected.IsPrivate, actual.IsPrivate)
217
	assert.Equal(t, expected.IsMirror, actual.IsMirror)
218
	assert.Equal(t, expected.Description, actual.Description)
219
	assert.Equal(t, expected.CloneURL, actual.CloneURL)
220
	assert.Equal(t, expected.OriginalURL, actual.OriginalURL)
221
	assert.Equal(t, expected.DefaultBranch, actual.DefaultBranch)
222
}
223

224
func assertReviewEqual(t *testing.T, expected, actual *base.Review) {
225
	assert.Equal(t, expected.ID, actual.ID, "ID")
226
	assert.Equal(t, expected.IssueIndex, actual.IssueIndex, "IsssueIndex")
227
	assert.Equal(t, expected.ReviewerID, actual.ReviewerID, "ReviewerID")
228
	assert.Equal(t, expected.ReviewerName, actual.ReviewerName, "ReviewerName")
229
	assert.Equal(t, expected.Official, actual.Official, "Official")
230
	assert.Equal(t, expected.CommitID, actual.CommitID, "CommitID")
231
	assert.Equal(t, expected.Content, actual.Content, "Content")
232
	assert.WithinDuration(t, expected.CreatedAt, actual.CreatedAt, 10*time.Second)
233
	assert.Equal(t, expected.State, actual.State, "State")
234
	assertReviewCommentsEqual(t, expected.Comments, actual.Comments)
235
}
236

237
func assertReviewsEqual(t *testing.T, expected, actual []*base.Review) {
238
	if assert.Len(t, actual, len(expected)) {
239
		for i := range expected {
240
			assertReviewEqual(t, expected[i], actual[i])
241
		}
242
	}
243
}
244

245
func assertReviewCommentEqual(t *testing.T, expected, actual *base.ReviewComment) {
246
	assert.Equal(t, expected.ID, actual.ID)
247
	assert.Equal(t, expected.InReplyTo, actual.InReplyTo)
248
	assert.Equal(t, expected.Content, actual.Content)
249
	assert.Equal(t, expected.TreePath, actual.TreePath)
250
	assert.Equal(t, expected.DiffHunk, actual.DiffHunk)
251
	assert.Equal(t, expected.Position, actual.Position)
252
	assert.Equal(t, expected.Line, actual.Line)
253
	assert.Equal(t, expected.CommitID, actual.CommitID)
254
	assert.Equal(t, expected.PosterID, actual.PosterID)
255
	assertReactionsEqual(t, expected.Reactions, actual.Reactions)
256
	assertTimeEqual(t, expected.CreatedAt, actual.CreatedAt)
257
	assertTimeEqual(t, expected.UpdatedAt, actual.UpdatedAt)
258
}
259

260
func assertReviewCommentsEqual(t *testing.T, expected, actual []*base.ReviewComment) {
261
	if assert.Len(t, actual, len(expected)) {
262
		for i := range expected {
263
			assertReviewCommentEqual(t, expected[i], actual[i])
264
		}
265
	}
266
}
267

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.