github.com/datachainlab/burrow@v0.25.0/deploy/loader/load_package_test.go (about) 1 package loader 2 3 import ( 4 "bytes" 5 "testing" 6 7 "github.com/hyperledger/burrow/deploy/def" 8 "github.com/spf13/viper" 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 yaml "gopkg.in/yaml.v2" 12 ) 13 14 func TestUnmarshal(t *testing.T) { 15 testUnmarshal(t, `jobs: 16 17 - name: AddValidators 18 update-account: 19 source: foo 20 target: bar 21 permissions: [foo, bar] 22 roles: ["foo"] 23 24 - name: nameRegTest1 25 register: 26 name: $val1 27 data: $val2 28 amount: $to_save 29 fee: $MinersFee 30 `) 31 testUnmarshal(t, `jobs: 32 33 update-account: 34 source: foo 35 target: bar 36 permissions: [foo, bar] 37 roles: ["foo"] 38 `) 39 } 40 41 func testUnmarshal(t *testing.T, testPackageYAML string) { 42 pkgs := viper.New() 43 pkgs.SetConfigType("yaml") 44 err := pkgs.ReadConfig(bytes.NewBuffer([]byte(testPackageYAML))) 45 require.NoError(t, err) 46 do := new(def.Playbook) 47 48 err = pkgs.UnmarshalExact(do) 49 require.NoError(t, err) 50 yamlOut, err := yaml.Marshal(do) 51 require.NoError(t, err) 52 assert.True(t, len(yamlOut) > 100, "should marshal some yaml") 53 54 doOut := new(def.Playbook) 55 err = yaml.Unmarshal(yamlOut, doOut) 56 require.NoError(t, err) 57 assert.Equal(t, do, doOut) 58 }