package dag import ( "testing" "github.com/stretchr/testify/require" "github.com/MichaelMure/git-bug/identity" ) func TestOperationPackReadWrite(t *testing.T) { repo, id1, _, resolver, def := makeTestContext() opp := &operationPack{ Author: id1, Operations: []Operation{ newOp1(id1, "foo"), newOp2(id1, "bar"), }, CreateTime: 123, EditTime: 456, } commitHash, err := opp.Write(def, repo) require.NoError(t, err) commit, err := repo.ReadCommit(commitHash) require.NoError(t, err) opp2, err := readOperationPack(def, repo, resolver, commit) require.NoError(t, err) require.Equal(t, opp, opp2) // make sure we get the same Id with the same data opp3 := &operationPack{ Author: id1, Operations: []Operation{ newOp1(id1, "foo"), newOp2(id1, "bar"), }, CreateTime: 123, EditTime: 456, } require.Equal(t, opp.Id(), opp3.Id()) } func TestOperationPackSignedReadWrite(t *testing.T) { repo, id1, _, resolver, def := makeTestContext() err := id1.(*identity.Identity).Mutate(repo, func(orig *identity.Mutator) { orig.Keys = append(orig.Keys, identity.GenerateKey()) }) require.NoError(t, err) opp := &operationPack{ Author: id1, Operations: []Operation{ newOp1(id1, "foo"), newOp2(id1, "bar"), }, CreateTime: 123, EditTime: 456, } commitHash, err := opp.Write(def, repo) require.NoError(t, err) commit, err := repo.ReadCommit(commitHash) require.NoError(t, err) opp2, err := readOperationPack(def, repo, resolver, commit) require.NoError(t, err) require.Equal(t, opp, opp2) // make sure we get the same Id with the same data opp3 := &operationPack{ Author: id1, Operations: []Operation{ newOp1(id1, "foo"), newOp2(id1, "bar"), }, CreateTime: 123, EditTime: 456, } require.Equal(t, opp.Id(), opp3.Id()) }