From a6832c234d5c73cfa00cb4a926f446e0b14b9732 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Wed, 25 Jan 2017 05:37:10 -0500 Subject: [PATCH] Unit tests for models/star (#752) --- models/fixtures/star.yml | 9 +++++ models/star_test.go | 80 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 models/fixtures/star.yml create mode 100644 models/star_test.go diff --git a/models/fixtures/star.yml b/models/fixtures/star.yml new file mode 100644 index 000000000..860f26b8e --- /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 000000000..d9717d9ec --- /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) +}