123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- // Copyright 2019 The Gitea Authors. All rights reserved.
- // Copyright 2018 Jonas Franz. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package migrations
-
- import (
- "path/filepath"
- "testing"
- "time"
-
- "code.gitea.io/gitea/models/unittest"
- base "code.gitea.io/gitea/modules/migration"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestMain(m *testing.M) {
- unittest.MainTest(m, &unittest.TestOptions{
- GiteaRootPath: filepath.Join("..", ".."),
- })
- }
-
- func timePtr(t time.Time) *time.Time {
- return &t
- }
-
- func assertTimeEqual(t *testing.T, expected, actual time.Time) {
- assert.Equal(t, expected.UTC(), actual.UTC())
- }
-
- func assertTimePtrEqual(t *testing.T, expected, actual *time.Time) {
- if expected == nil {
- assert.Nil(t, actual)
- } else {
- assert.NotNil(t, actual)
- assertTimeEqual(t, *expected, *actual)
- }
- }
-
- func assertCommentEqual(t *testing.T, expected, actual *base.Comment) {
- assert.Equal(t, expected.IssueIndex, actual.IssueIndex)
- assert.Equal(t, expected.PosterID, actual.PosterID)
- assert.Equal(t, expected.PosterName, actual.PosterName)
- assert.Equal(t, expected.PosterEmail, actual.PosterEmail)
- assertTimeEqual(t, expected.Created, actual.Created)
- assertTimeEqual(t, expected.Updated, actual.Updated)
- assert.Equal(t, expected.Content, actual.Content)
- assertReactionsEqual(t, expected.Reactions, actual.Reactions)
- }
-
- func assertCommentsEqual(t *testing.T, expected, actual []*base.Comment) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertCommentEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertLabelEqual(t *testing.T, expected, actual *base.Label) {
- assert.Equal(t, expected.Name, actual.Name)
- assert.Equal(t, expected.Color, actual.Color)
- assert.Equal(t, expected.Description, actual.Description)
- }
-
- func assertLabelsEqual(t *testing.T, expected, actual []*base.Label) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertLabelEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertMilestoneEqual(t *testing.T, expected, actual *base.Milestone) {
- assert.Equal(t, expected.Title, actual.Title)
- assert.Equal(t, expected.Description, actual.Description)
- assertTimePtrEqual(t, expected.Deadline, actual.Deadline)
- assertTimeEqual(t, expected.Created, actual.Created)
- assertTimePtrEqual(t, expected.Updated, actual.Updated)
- assertTimePtrEqual(t, expected.Closed, actual.Closed)
- assert.Equal(t, expected.State, actual.State)
- }
-
- func assertMilestonesEqual(t *testing.T, expected, actual []*base.Milestone) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertMilestoneEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertIssueEqual(t *testing.T, expected, actual *base.Issue) {
- assert.Equal(t, expected.Number, actual.Number)
- assert.Equal(t, expected.PosterID, actual.PosterID)
- assert.Equal(t, expected.PosterName, actual.PosterName)
- assert.Equal(t, expected.PosterEmail, actual.PosterEmail)
- assert.Equal(t, expected.Title, actual.Title)
- assert.Equal(t, expected.Content, actual.Content)
- assert.Equal(t, expected.Ref, actual.Ref)
- assert.Equal(t, expected.Milestone, actual.Milestone)
- assert.Equal(t, expected.State, actual.State)
- assert.Equal(t, expected.IsLocked, actual.IsLocked)
- assertTimeEqual(t, expected.Created, actual.Created)
- assertTimeEqual(t, expected.Updated, actual.Updated)
- assertTimePtrEqual(t, expected.Closed, actual.Closed)
- assertLabelsEqual(t, expected.Labels, actual.Labels)
- assertReactionsEqual(t, expected.Reactions, actual.Reactions)
- assert.ElementsMatch(t, expected.Assignees, actual.Assignees)
- }
-
- func assertIssuesEqual(t *testing.T, expected, actual []*base.Issue) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertIssueEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertPullRequestEqual(t *testing.T, expected, actual *base.PullRequest) {
- assert.Equal(t, expected.Number, actual.Number)
- assert.Equal(t, expected.Title, actual.Title)
- assert.Equal(t, expected.PosterID, actual.PosterID)
- assert.Equal(t, expected.PosterName, actual.PosterName)
- assert.Equal(t, expected.PosterEmail, actual.PosterEmail)
- assert.Equal(t, expected.Content, actual.Content)
- assert.Equal(t, expected.Milestone, actual.Milestone)
- assert.Equal(t, expected.State, actual.State)
- assertTimeEqual(t, expected.Created, actual.Created)
- assertTimeEqual(t, expected.Updated, actual.Updated)
- assertTimePtrEqual(t, expected.Closed, actual.Closed)
- assertLabelsEqual(t, expected.Labels, actual.Labels)
- assert.Equal(t, expected.PatchURL, actual.PatchURL)
- assert.Equal(t, expected.Merged, actual.Merged)
- assertTimePtrEqual(t, expected.MergedTime, actual.MergedTime)
- assert.Equal(t, expected.MergeCommitSHA, actual.MergeCommitSHA)
- assertPullRequestBranchEqual(t, expected.Head, actual.Head)
- assertPullRequestBranchEqual(t, expected.Base, actual.Base)
- assert.ElementsMatch(t, expected.Assignees, actual.Assignees)
- assert.Equal(t, expected.IsLocked, actual.IsLocked)
- assertReactionsEqual(t, expected.Reactions, actual.Reactions)
- }
-
- func assertPullRequestsEqual(t *testing.T, expected, actual []*base.PullRequest) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertPullRequestEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertPullRequestBranchEqual(t *testing.T, expected, actual base.PullRequestBranch) {
- assert.Equal(t, expected.CloneURL, actual.CloneURL)
- assert.Equal(t, expected.Ref, actual.Ref)
- assert.Equal(t, expected.SHA, actual.SHA)
- assert.Equal(t, expected.RepoName, actual.RepoName)
- assert.Equal(t, expected.OwnerName, actual.OwnerName)
- }
-
- func assertReactionEqual(t *testing.T, expected, actual *base.Reaction) {
- assert.Equal(t, expected.UserID, actual.UserID)
- assert.Equal(t, expected.UserName, actual.UserName)
- assert.Equal(t, expected.Content, actual.Content)
- }
-
- func assertReactionsEqual(t *testing.T, expected, actual []*base.Reaction) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertReactionEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertReleaseAssetEqual(t *testing.T, expected, actual *base.ReleaseAsset) {
- assert.Equal(t, expected.ID, actual.ID)
- assert.Equal(t, expected.Name, actual.Name)
- assert.Equal(t, expected.ContentType, actual.ContentType)
- assert.Equal(t, expected.Size, actual.Size)
- assert.Equal(t, expected.DownloadCount, actual.DownloadCount)
- assertTimeEqual(t, expected.Created, actual.Created)
- assertTimeEqual(t, expected.Updated, actual.Updated)
- assert.Equal(t, expected.DownloadURL, actual.DownloadURL)
- }
-
- func assertReleaseAssetsEqual(t *testing.T, expected, actual []*base.ReleaseAsset) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertReleaseAssetEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertReleaseEqual(t *testing.T, expected, actual *base.Release) {
- assert.Equal(t, expected.TagName, actual.TagName)
- assert.Equal(t, expected.TargetCommitish, actual.TargetCommitish)
- assert.Equal(t, expected.Name, actual.Name)
- assert.Equal(t, expected.Body, actual.Body)
- assert.Equal(t, expected.Draft, actual.Draft)
- assert.Equal(t, expected.Prerelease, actual.Prerelease)
- assert.Equal(t, expected.PublisherID, actual.PublisherID)
- assert.Equal(t, expected.PublisherName, actual.PublisherName)
- assert.Equal(t, expected.PublisherEmail, actual.PublisherEmail)
- assertReleaseAssetsEqual(t, expected.Assets, actual.Assets)
- assertTimeEqual(t, expected.Created, actual.Created)
- assertTimeEqual(t, expected.Published, actual.Published)
- }
-
- func assertReleasesEqual(t *testing.T, expected, actual []*base.Release) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertReleaseEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertRepositoryEqual(t *testing.T, expected, actual *base.Repository) {
- assert.Equal(t, expected.Name, actual.Name)
- assert.Equal(t, expected.Owner, actual.Owner)
- assert.Equal(t, expected.IsPrivate, actual.IsPrivate)
- assert.Equal(t, expected.IsMirror, actual.IsMirror)
- assert.Equal(t, expected.Description, actual.Description)
- assert.Equal(t, expected.CloneURL, actual.CloneURL)
- assert.Equal(t, expected.OriginalURL, actual.OriginalURL)
- assert.Equal(t, expected.DefaultBranch, actual.DefaultBranch)
- }
-
- func assertReviewEqual(t *testing.T, expected, actual *base.Review) {
- assert.Equal(t, expected.ID, actual.ID, "ID")
- assert.Equal(t, expected.IssueIndex, actual.IssueIndex, "IsssueIndex")
- assert.Equal(t, expected.ReviewerID, actual.ReviewerID, "ReviewerID")
- assert.Equal(t, expected.ReviewerName, actual.ReviewerName, "ReviewerName")
- assert.Equal(t, expected.Official, actual.Official, "Official")
- assert.Equal(t, expected.CommitID, actual.CommitID, "CommitID")
- assert.Equal(t, expected.Content, actual.Content, "Content")
- assert.WithinDuration(t, expected.CreatedAt, actual.CreatedAt, 10*time.Second)
- assert.Equal(t, expected.State, actual.State, "State")
- assertReviewCommentsEqual(t, expected.Comments, actual.Comments)
- }
-
- func assertReviewsEqual(t *testing.T, expected, actual []*base.Review) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertReviewEqual(t, expected[i], actual[i])
- }
- }
- }
-
- func assertReviewCommentEqual(t *testing.T, expected, actual *base.ReviewComment) {
- assert.Equal(t, expected.ID, actual.ID)
- assert.Equal(t, expected.InReplyTo, actual.InReplyTo)
- assert.Equal(t, expected.Content, actual.Content)
- assert.Equal(t, expected.TreePath, actual.TreePath)
- assert.Equal(t, expected.DiffHunk, actual.DiffHunk)
- assert.Equal(t, expected.Position, actual.Position)
- assert.Equal(t, expected.Line, actual.Line)
- assert.Equal(t, expected.CommitID, actual.CommitID)
- assert.Equal(t, expected.PosterID, actual.PosterID)
- assertReactionsEqual(t, expected.Reactions, actual.Reactions)
- assertTimeEqual(t, expected.CreatedAt, actual.CreatedAt)
- assertTimeEqual(t, expected.UpdatedAt, actual.UpdatedAt)
- }
-
- func assertReviewCommentsEqual(t *testing.T, expected, actual []*base.ReviewComment) {
- if assert.Len(t, actual, len(expected)) {
- for i := range expected {
- assertReviewCommentEqual(t, expected[i], actual[i])
- }
- }
- }
|