1package tests
 2
 3import (
 4	"github.com/MichaelMure/git-bug/bug"
 5	"github.com/MichaelMure/git-bug/bug/operations"
 6	"github.com/MichaelMure/git-bug/repository"
 7	"testing"
 8)
 9
10var (
11	rene = bug.Person{
12		Name:  "René Descartes",
13		Email: "rene@descartes.fr",
14	}
15
16	createOp      = operations.NewCreateOp(rene, "title", "message", nil)
17	setTitleOp    = operations.NewSetTitleOp(rene, "title2", "title1")
18	addCommentOp  = operations.NewAddCommentOp(rene, "message2", nil)
19	setStatusOp   = operations.NewSetStatusOp(rene, bug.ClosedStatus)
20	labelChangeOp = operations.NewLabelChangeOperation(rene, []bug.Label{"added"}, []bug.Label{"removed"})
21	mockRepo      = repository.NewMockRepoForTest()
22)
23
24func TestOpIterator(t *testing.T) {
25
26	bug1 := bug.NewBug()
27
28	bug1.Append(createOp)
29	bug1.Append(setTitleOp)
30	bug1.Append(addCommentOp)
31	bug1.Append(setStatusOp)
32	bug1.Append(labelChangeOp)
33	bug1.Commit(mockRepo)
34
35	bug1.Append(setTitleOp)
36	bug1.Append(setTitleOp)
37	bug1.Append(setTitleOp)
38	bug1.Commit(mockRepo)
39
40	bug1.Append(setTitleOp)
41	bug1.Append(setTitleOp)
42	bug1.Append(setTitleOp)
43
44	it := bug.NewOperationIterator(bug1)
45
46	counter := 0
47	for it.Next() {
48		_ = it.Value()
49		counter++
50	}
51
52	if counter != 11 {
53		t.Fatalf("Wrong count of value iterated (%d instead of 8)", counter)
54	}
55}