1package bug
2
3import (
4 "encoding/json"
5 "testing"
6
7 "github.com/MichaelMure/git-bug/util/git"
8 "github.com/go-test/deep"
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 if len(opMeta.Metadata) != 1 {
25 t.Fatal()
26 }
27
28 opFile := NewCreateOp(rene, unix, "title", "message", []git.Hash{
29 "abcdef",
30 "ghijkl",
31 })
32 opp.Append(opFile)
33
34 if len(opFile.Files) != 2 {
35 t.Fatal()
36 }
37
38 data, err := json.Marshal(opp)
39 if err != nil {
40 t.Fatal(err)
41 }
42
43 var opp2 *OperationPack
44 err = json.Unmarshal(data, &opp2)
45 if err != nil {
46 t.Fatal(err)
47 }
48
49 deep.CompareUnexportedFields = false
50 if diff := deep.Equal(opp, opp2); diff != nil {
51 t.Fatal(diff)
52 }
53}