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  }