operation_pack_test.go

 1package dag
 2
 3import (
 4	"testing"
 5
 6	"github.com/stretchr/testify/require"
 7)
 8
 9func TestOperationPackReadWrite(t *testing.T) {
10	repo, id1, _, def := makeTestContext()
11
12	opp := &operationPack{
13		Author: id1,
14		Operations: []Operation{
15			newOp1(id1, "foo"),
16			newOp2(id1, "bar"),
17		},
18		CreateTime: 123,
19		EditTime:   456,
20	}
21
22	commitHash, err := opp.Write(def, repo)
23	require.NoError(t, err)
24
25	commit, err := repo.ReadCommit(commitHash)
26	require.NoError(t, err)
27
28	opp2, err := readOperationPack(def, repo, commit)
29	require.NoError(t, err)
30
31	require.Equal(t, opp, opp2)
32
33	// make sure we get the same Id with the same data
34	opp3 := &operationPack{
35		Author: id1,
36		Operations: []Operation{
37			newOp1(id1, "foo"),
38			newOp2(id1, "bar"),
39		},
40		CreateTime: 123,
41		EditTime:   456,
42	}
43	require.Equal(t, opp.Id(), opp3.Id())
44}