github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/deploy/def/deploy_test.go (about) 1 package def 2 3 import ( 4 "testing" 5 6 "github.com/hyperledger/burrow/crypto" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestPackage_Validate(t *testing.T) { 11 address := crypto.Address{3, 4}.String() 12 pkgs := &Playbook{ 13 Jobs: []*Job{{ 14 Name: "CallJob", 15 Call: &Call{ 16 Sequence: "13", 17 Destination: address, 18 }, 19 }}, 20 } 21 err := pkgs.Validate() 22 require.NoError(t, err) 23 24 pkgs.Jobs = append(pkgs.Jobs, &Job{ 25 Name: "Foo", 26 Account: &Account{ 27 Address: address, 28 }, 29 }) 30 err = pkgs.Validate() 31 require.NoError(t, err) 32 33 // cannot set two job fields 34 pkgs.Jobs[1].QueryAccount = &QueryAccount{ 35 Account: address, 36 Field: "Foo", 37 } 38 err = pkgs.Validate() 39 require.Error(t, err) 40 41 pkgs = &Playbook{ 42 Jobs: []*Job{{ 43 Name: "UpdateAccount", 44 UpdateAccount: &UpdateAccount{ 45 Target: address, 46 Sequence: "13", 47 Native: "333", 48 }, 49 }}, 50 } 51 err = pkgs.Validate() 52 require.NoError(t, err) 53 }