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  }