diff options
author | Ethan Koenig <etk39@cornell.edu> | 2017-01-25 05:37:10 -0500 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-01-25 18:37:10 +0800 |
commit | a6832c234d5c73cfa00cb4a926f446e0b14b9732 (patch) | |
tree | e4ca8f6f208b886e87fd03b5575fad4f4b097156 /models | |
parent | 8c2381103a209d9d01934f650704e388c428cf42 (diff) | |
download | gitea-a6832c234d5c73cfa00cb4a926f446e0b14b9732.tar.gz gitea-a6832c234d5c73cfa00cb4a926f446e0b14b9732.zip |
Unit tests for models/star (#752)
Diffstat (limited to 'models')
-rw-r--r-- | models/fixtures/star.yml | 9 | ||||
-rw-r--r-- | models/star_test.go | 80 |
2 files changed, 89 insertions, 0 deletions
diff --git a/models/fixtures/star.yml b/models/fixtures/star.yml new file mode 100644 index 0000000000..860f26b8e2 --- /dev/null +++ b/models/fixtures/star.yml @@ -0,0 +1,9 @@ +- + id: 1 + uid: 2 + repo_id: 2 + +- + id: 2 + uid: 2 + repo_id: 4 diff --git a/models/star_test.go b/models/star_test.go new file mode 100644 index 0000000000..d9717d9ec9 --- /dev/null +++ b/models/star_test.go @@ -0,0 +1,80 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package models + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestStarRepo(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + const userID = 2 + const repoID = 1 + AssertNotExistsBean(t, &Star{UID: userID, RepoID: repoID}) + assert.NoError(t, StarRepo(userID, repoID, true)) + AssertExistsAndLoadBean(t, &Star{UID: userID, RepoID: repoID}) + assert.NoError(t, StarRepo(userID, repoID, true)) + AssertExistsAndLoadBean(t, &Star{UID: userID, RepoID: repoID}) + assert.NoError(t, StarRepo(userID, repoID, false)) + AssertNotExistsBean(t, &Star{UID: userID, RepoID: repoID}) +} + +func TestIsStaring(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + assert.True(t, IsStaring(2, 4)) + assert.False(t, IsStaring(3, 4)) +} + +func TestRepository_GetStargazers(t *testing.T) { + // repo with stargazers + assert.NoError(t, PrepareTestDatabase()) + repo := AssertExistsAndLoadBean(t, &Repository{ID: 4}).(*Repository) + gazers, err := repo.GetStargazers(0) + assert.NoError(t, err) + assert.Len(t, gazers, 1) + assert.Equal(t, int64(2), gazers[0].ID) +} + +func TestRepository_GetStargazers2(t *testing.T) { + // repo with stargazers + assert.NoError(t, PrepareTestDatabase()) + repo := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository) + gazers, err := repo.GetStargazers(0) + assert.NoError(t, err) + assert.Len(t, gazers, 0) +} + +func TestUser_GetStarredRepos(t *testing.T) { + // user who has starred repos + assert.NoError(t, PrepareTestDatabase()) + + user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User) + starred, err := user.GetStarredRepos(false) + assert.NoError(t, err) + assert.Len(t, starred, 1) + assert.Equal(t, int64(4), starred[0].ID) + + starred, err = user.GetStarredRepos(true) + assert.NoError(t, err) + assert.Len(t, starred, 2) + assert.Equal(t, int64(2), starred[0].ID) + assert.Equal(t, int64(4), starred[1].ID) +} + +func TestUser_GetStarredRepos2(t *testing.T) { + // user who has no starred repos + assert.NoError(t, PrepareTestDatabase()) + + user := AssertExistsAndLoadBean(t, &User{ID: 1}).(*User) + starred, err := user.GetStarredRepos(false) + assert.NoError(t, err) + assert.Len(t, starred, 0) + + starred, err = user.GetStarredRepos(true) + assert.NoError(t, err) + assert.Len(t, starred, 0) +} |