github.com/cosmos/cosmos-sdk@v0.50.10/x/genutil/types/genesis_test.go (about) 1 package types_test 2 3 import ( 4 "encoding/json" 5 "os" 6 "testing" 7 8 cmttypes "github.com/cometbft/cometbft/types" 9 "gotest.tools/v3/assert" 10 "gotest.tools/v3/golden" 11 12 "github.com/cosmos/cosmos-sdk/x/genutil/types" 13 ) 14 15 func TestAppGenesis_Marshal(t *testing.T) { 16 genesis := types.AppGenesis{ 17 AppName: "simapp", 18 AppVersion: "0.1.0", 19 ChainID: "test", 20 } 21 22 out, err := json.Marshal(&genesis) 23 assert.NilError(t, err) 24 assert.Equal(t, string(out), `{"app_name":"simapp","app_version":"0.1.0","genesis_time":"0001-01-01T00:00:00Z","chain_id":"test","initial_height":0,"app_hash":null}`) 25 } 26 27 func TestAppGenesis_Unmarshal(t *testing.T) { 28 jsonBlob, err := os.ReadFile("testdata/app_genesis.json") 29 assert.NilError(t, err) 30 31 var genesis types.AppGenesis 32 err = json.Unmarshal(jsonBlob, &genesis) 33 assert.NilError(t, err) 34 35 assert.DeepEqual(t, genesis.ChainID, "demo") 36 assert.DeepEqual(t, genesis.Consensus.Params.Block.MaxBytes, int64(22020096)) 37 } 38 39 func TestAppGenesis_ValidGenesis(t *testing.T) { 40 // validate can read cometbft genesis file 41 genesis, err := types.AppGenesisFromFile("testdata/cmt_genesis.json") 42 assert.NilError(t, err) 43 44 assert.DeepEqual(t, genesis.ChainID, "demo") 45 assert.DeepEqual(t, genesis.Consensus.Validators[0].Name, "test") 46 47 // validate the app genesis can be translated properly to cometbft genesis 48 cmtGenesis, err := genesis.ToGenesisDoc() 49 assert.NilError(t, err) 50 rawCmtGenesis, err := cmttypes.GenesisDocFromFile("testdata/cmt_genesis.json") 51 assert.NilError(t, err) 52 assert.DeepEqual(t, cmtGenesis, rawCmtGenesis) 53 54 // validate can properly marshal to app genesis file 55 rawAppGenesis, err := json.Marshal(&genesis) 56 assert.NilError(t, err) 57 golden.Assert(t, string(rawAppGenesis), "app_genesis.json") 58 59 // validate the app genesis can be unmarshalled properly 60 var appGenesis types.AppGenesis 61 err = json.Unmarshal(rawAppGenesis, &appGenesis) 62 assert.NilError(t, err) 63 assert.DeepEqual(t, appGenesis.Consensus.Params, genesis.Consensus.Params) 64 65 // validate marshaling of app genesis 66 rawAppGenesis, err = json.Marshal(&appGenesis) 67 assert.NilError(t, err) 68 golden.Assert(t, string(rawAppGenesis), "app_genesis.json") 69 }