summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorEthan Koenig <etk39@cornell.edu>2017-01-25 05:37:10 -0500
committerLunny Xiao <xiaolunwen@gmail.com>2017-01-25 18:37:10 +0800
commita6832c234d5c73cfa00cb4a926f446e0b14b9732 (patch)
treee4ca8f6f208b886e87fd03b5575fad4f4b097156 /models
parent8c2381103a209d9d01934f650704e388c428cf42 (diff)
downloadgitea-a6832c234d5c73cfa00cb4a926f446e0b14b9732.tar.gz
gitea-a6832c234d5c73cfa00cb4a926f446e0b14b9732.zip
Unit tests for models/star (#752)
Diffstat (limited to 'models')
-rw-r--r--models/fixtures/star.yml9
-rw-r--r--models/star_test.go80
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)
+}