// stm: #unit package config import ( "bytes" "fmt" "reflect" "strings" "testing" "github.com/BurntSushi/toml" "github.com/stretchr/testify/require" ) func TestDefaultFullNodeRoundtrip(t *testing.T) { //stm: @OTHER_IMPLEMENTATION_001 c := DefaultFullNode() var s string { buf := new(bytes.Buffer) _, _ = buf.WriteString("# Default config:\n") e := toml.NewEncoder(buf) require.NoError(t, e.Encode(c)) s = buf.String() } c2, err := FromReader(strings.NewReader(s), DefaultFullNode()) require.NoError(t, err) fmt.Println(s) require.True(t, reflect.DeepEqual(c, c2)) } func TestDefaultFullNodeCommentRoundtrip(t *testing.T) { c := DefaultFullNode() var s string { c, err := ConfigComment(DefaultFullNode()) require.NoError(t, err) s = string(c) } c2, err := FromReader(strings.NewReader(s), DefaultFullNode()) require.NoError(t, err) fmt.Println(s) require.True(t, reflect.DeepEqual(c, c2)) } func TestDefaultMinerRoundtrip(t *testing.T) { //stm: @OTHER_IMPLEMENTATION_001 c := DefaultStorageMiner() var s string { buf := new(bytes.Buffer) _, _ = buf.WriteString("# Default config:\n") e := toml.NewEncoder(buf) require.NoError(t, e.Encode(c)) s = buf.String() } c2, err := FromReader(strings.NewReader(s), DefaultStorageMiner()) require.NoError(t, err) fmt.Println(s) // Differs between test envs c.HarmonyDB = HarmonyDB{} c2.(*StorageMiner).HarmonyDB = HarmonyDB{} fmt.Println(c) fmt.Println(c2) require.True(t, reflect.DeepEqual(c, c2)) }