From 140967f00210b61b6246197cc9ecee10baa2e6f8 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Thu, 16 Feb 2017 19:55:33 -0500 Subject: [PATCH] Unit tests for repo redirects (#961) --- models/fixtures/repo_redirect.yml | 5 +++ models/repo_redirect_test.go | 74 +++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 models/fixtures/repo_redirect.yml create mode 100644 models/repo_redirect_test.go diff --git a/models/fixtures/repo_redirect.yml b/models/fixtures/repo_redirect.yml new file mode 100644 index 0000000000..8850c8d780 --- /dev/null +++ b/models/fixtures/repo_redirect.yml @@ -0,0 +1,5 @@ +- + id: 1 + owner_id: 2 + lower_name: oldrepo1 + redirect_repo_id: 1 diff --git a/models/repo_redirect_test.go b/models/repo_redirect_test.go new file mode 100644 index 0000000000..b3da328362 --- /dev/null +++ b/models/repo_redirect_test.go @@ -0,0 +1,74 @@ +// 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 TestLookupRepoRedirect(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + + repoID, err := LookupRepoRedirect(2, "oldrepo1") + assert.NoError(t, err) + assert.EqualValues(t, 1, repoID) + + _, err = LookupRepoRedirect(NonexistentID, "doesnotexist") + assert.True(t, IsErrRepoRedirectNotExist(err)) +} + +func TestNewRepoRedirect(t *testing.T) { + // redirect to a completely new name + assert.NoError(t, PrepareTestDatabase()) + + repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) + assert.NoError(t, NewRepoRedirect(repo.OwnerID, repo.ID, repo.Name, "newreponame")) + + AssertExistsAndLoadBean(t, &RepoRedirect{ + OwnerID: repo.OwnerID, + LowerName: repo.LowerName, + RedirectRepoID: repo.ID, + }) + AssertExistsAndLoadBean(t, &RepoRedirect{ + OwnerID: repo.OwnerID, + LowerName: "oldrepo1", + RedirectRepoID: repo.ID, + }) +} + +func TestNewRepoRedirect2(t *testing.T) { + // redirect to previously used name + assert.NoError(t, PrepareTestDatabase()) + + repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) + assert.NoError(t, NewRepoRedirect(repo.OwnerID, repo.ID, repo.Name, "oldrepo1")) + + AssertExistsAndLoadBean(t, &RepoRedirect{ + OwnerID: repo.OwnerID, + LowerName: repo.LowerName, + RedirectRepoID: repo.ID, + }) + AssertNotExistsBean(t, &RepoRedirect{ + OwnerID: repo.OwnerID, + LowerName: "oldrepo1", + RedirectRepoID: repo.ID, + }) +} + +func TestNewRepoRedirect3(t *testing.T) { + // redirect for a previously-unredirected repo + assert.NoError(t, PrepareTestDatabase()) + + repo := AssertExistsAndLoadBean(t, &Repository{ID: 2}).(*Repository) + assert.NoError(t, NewRepoRedirect(repo.OwnerID, repo.ID, repo.Name, "newreponame")) + + AssertExistsAndLoadBean(t, &RepoRedirect{ + OwnerID: repo.OwnerID, + LowerName: repo.LowerName, + RedirectRepoID: repo.ID, + }) +}