2020-01-31 02:41:33 +00: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 gitea
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestMilestones(t *testing.T) {
|
|
|
|
log.Println("== TestMilestones ==")
|
|
|
|
c := newTestClient()
|
|
|
|
|
|
|
|
repo, _ := createTestRepo(t, "TestMilestones", c)
|
|
|
|
now := time.Now()
|
|
|
|
future := time.Unix(1896134400, 0) //2030-02-01
|
|
|
|
closed := "closed"
|
2020-06-04 10:19:02 +01:00
|
|
|
sClosed := StateClosed
|
2020-01-31 02:41:33 +00:00
|
|
|
|
|
|
|
// CreateMilestone 4x
|
|
|
|
m1, err := c.CreateMilestone(repo.Owner.UserName, repo.Name, CreateMilestoneOption{Title: "v1.0", Description: "First Version", Deadline: &now})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
_, err = c.CreateMilestone(repo.Owner.UserName, repo.Name, CreateMilestoneOption{Title: "v2.0", Description: "Second Version", Deadline: &future})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
_, err = c.CreateMilestone(repo.Owner.UserName, repo.Name, CreateMilestoneOption{Title: "v3.0", Description: "Third Version", Deadline: nil})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
m4, err := c.CreateMilestone(repo.Owner.UserName, repo.Name, CreateMilestoneOption{Title: "temp", Description: "part time milestone"})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
// EditMilestone
|
2020-06-04 10:19:02 +01:00
|
|
|
m1, err = c.EditMilestone(repo.Owner.UserName, repo.Name, m1.ID, EditMilestoneOption{Description: &closed, State: &sClosed})
|
2020-01-31 02:41:33 +00:00
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
// DeleteMilestone
|
|
|
|
assert.NoError(t, c.DeleteMilestone(repo.Owner.UserName, repo.Name, m4.ID))
|
|
|
|
|
|
|
|
// ListRepoMilestones
|
|
|
|
ml, err := c.ListRepoMilestones(repo.Owner.UserName, repo.Name, ListMilestoneOption{})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Len(t, ml, 2)
|
2020-06-04 10:19:02 +01:00
|
|
|
ml, err = c.ListRepoMilestones(repo.Owner.UserName, repo.Name, ListMilestoneOption{State: StateClosed})
|
2020-01-31 02:41:33 +00:00
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Len(t, ml, 1)
|
2020-06-04 10:19:02 +01:00
|
|
|
ml, err = c.ListRepoMilestones(repo.Owner.UserName, repo.Name, ListMilestoneOption{State: StateAll})
|
2020-01-31 02:41:33 +00:00
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Len(t, ml, 3)
|
2020-09-05 07:27:44 +01:00
|
|
|
ml, err = c.ListRepoMilestones(repo.Owner.UserName, repo.Name, ListMilestoneOption{State: StateAll, Name: "V3.0"})
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.Len(t, ml, 1)
|
|
|
|
assert.EqualValues(t, "v3.0", ml[0].Title)
|
2020-01-31 02:41:33 +00:00
|
|
|
|
|
|
|
// GetMilestone
|
|
|
|
_, err = c.GetMilestone(repo.Owner.UserName, repo.Name, m4.ID)
|
|
|
|
assert.Error(t, err)
|
|
|
|
m, err := c.GetMilestone(repo.Owner.UserName, repo.Name, m1.ID)
|
2020-05-27 14:04:51 +01:00
|
|
|
assert.NoError(t, err)
|
2020-01-31 02:41:33 +00:00
|
|
|
assert.EqualValues(t, m1, m)
|
|
|
|
}
|