2020-08-17 06:07:38 +03:00
// Copyright 2020 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"
2021-11-12 17:36:47 +03:00
"code.gitea.io/gitea/models/unittest"
2020-08-17 06:07:38 +03:00
"code.gitea.io/gitea/modules/timeutil"
"github.com/stretchr/testify/assert"
)
func TestIsProjectTypeValid ( t * testing . T ) {
const UnknownType ProjectType = 15
2021-03-14 21:52:12 +03:00
cases := [ ] struct {
2020-08-17 06:07:38 +03:00
typ ProjectType
valid bool
} {
{ ProjectTypeIndividual , false } ,
{ ProjectTypeRepository , true } ,
{ ProjectTypeOrganization , false } ,
{ UnknownType , false } ,
}
for _ , v := range cases {
assert . Equal ( t , v . valid , IsProjectTypeValid ( v . typ ) )
}
}
func TestGetProjects ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2020-08-17 06:07:38 +03:00
projects , _ , err := GetProjects ( ProjectSearchOptions { RepoID : 1 } )
assert . NoError ( t , err )
// 1 value for this repo exists in the fixtures
assert . Len ( t , projects , 1 )
projects , _ , err = GetProjects ( ProjectSearchOptions { RepoID : 3 } )
assert . NoError ( t , err )
// 1 value for this repo exists in the fixtures
assert . Len ( t , projects , 1 )
}
func TestProject ( t * testing . T ) {
2021-11-12 17:36:47 +03:00
assert . NoError ( t , unittest . PrepareTestDatabase ( ) )
2020-08-17 06:07:38 +03:00
project := & Project {
Type : ProjectTypeRepository ,
BoardType : ProjectBoardTypeBasicKanban ,
Title : "New Project" ,
RepoID : 1 ,
CreatedUnix : timeutil . TimeStampNow ( ) ,
CreatorID : 2 ,
}
assert . NoError ( t , NewProject ( project ) )
_ , err := GetProjectByID ( project . ID )
assert . NoError ( t , err )
// Update project
project . Title = "Updated title"
assert . NoError ( t , UpdateProject ( project ) )
projectFromDB , err := GetProjectByID ( project . ID )
assert . NoError ( t , err )
assert . Equal ( t , project . Title , projectFromDB . Title )
assert . NoError ( t , ChangeProjectStatus ( project , true ) )
// Retrieve from DB afresh to check if it is truly closed
projectFromDB , err = GetProjectByID ( project . ID )
assert . NoError ( t , err )
assert . True ( t , projectFromDB . IsClosed )
}