1package bug
2
3import (
4 "encoding/json"
5 "testing"
6
7 "github.com/MichaelMure/git-bug/util/git"
8 "github.com/stretchr/testify/assert"
9)
10
11func TestOperationPackSerialize(t *testing.T) {
12 opp := &OperationPack{}
13
14 opp.Append(createOp)
15 opp.Append(setTitleOp)
16 opp.Append(addCommentOp)
17 opp.Append(setStatusOp)
18 opp.Append(labelChangeOp)
19
20 opMeta := NewCreateOp(rene, unix, "title", "message", nil)
21 opMeta.SetMetadata("key", "value")
22 opp.Append(opMeta)
23
24 assert.Equal(t, 1, len(opMeta.Metadata))
25
26 opFile := NewCreateOp(rene, unix, "title", "message", []git.Hash{
27 "abcdef",
28 "ghijkl",
29 })
30 opp.Append(opFile)
31
32 assert.Equal(t, 2, len(opFile.Files))
33
34 data, err := json.Marshal(opp)
35 assert.NoError(t, err)
36
37 var opp2 *OperationPack
38 err = json.Unmarshal(data, &opp2)
39
40 assert.NoError(t, err)
41 assert.Equal(t, opp, opp2)
42}