mirror of
https://github.com/planetmint/planetmint-go.git
synced 2025-11-24 06:25:47 +00:00
added test cases
adjusted to the linter requirements Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
This commit is contained in:
parent
8b8331f79b
commit
16c4f1e077
17
tests/e2e/der/cli_test.go
Normal file
17
tests/e2e/der/cli_test.go
Normal file
@ -0,0 +1,17 @@
|
||||
package der
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/planetmint/planetmint-go/testutil/network"
|
||||
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
func TestE2EMachineTestSuite(t *testing.T) {
|
||||
time.Sleep(2 * time.Second)
|
||||
cfg := network.LoaderDefaultConfig()
|
||||
cfg.NumValidators = 3
|
||||
suite.Run(t, NewE2ETestSuite(cfg))
|
||||
}
|
||||
83
tests/e2e/der/suite.go
Normal file
83
tests/e2e/der/suite.go
Normal file
@ -0,0 +1,83 @@
|
||||
package der
|
||||
|
||||
import (
|
||||
clitestutil "github.com/planetmint/planetmint-go/testutil/cli"
|
||||
e2etestutil "github.com/planetmint/planetmint-go/testutil/e2e"
|
||||
"github.com/planetmint/planetmint-go/testutil/network"
|
||||
"github.com/planetmint/planetmint-go/testutil/sample"
|
||||
dercli "github.com/planetmint/planetmint-go/x/der/client/cli"
|
||||
dertypes "github.com/planetmint/planetmint-go/x/der/types"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/suite"
|
||||
)
|
||||
|
||||
// E2ETestSuite struct definition of machine suite
|
||||
type E2ETestSuite struct {
|
||||
suite.Suite
|
||||
|
||||
cfg network.Config
|
||||
network *network.Network
|
||||
feeDenom string
|
||||
}
|
||||
|
||||
// NewE2ETestSuite returns configured machine E2ETestSuite
|
||||
func NewE2ETestSuite(cfg network.Config) *E2ETestSuite {
|
||||
return &E2ETestSuite{cfg: cfg}
|
||||
}
|
||||
|
||||
// SetupSuite initializes machine E2ETestSuite
|
||||
func (s *E2ETestSuite) SetupSuite() {
|
||||
s.T().Log("setting up e2e machine test suite")
|
||||
|
||||
s.feeDenom = sample.FeeDenom
|
||||
s.network = network.Load(s.T(), s.cfg)
|
||||
|
||||
// create machine account for attestation
|
||||
account, err := e2etestutil.CreateAccount(s.network, sample.Name, sample.Mnemonic)
|
||||
s.Require().NoError(err)
|
||||
err = e2etestutil.FundAccount(s.network, account, s.feeDenom)
|
||||
s.Require().NoError(err)
|
||||
}
|
||||
|
||||
// TearDownSuite clean up after testing
|
||||
func (s *E2ETestSuite) TearDownSuite() {
|
||||
s.T().Log("tearing down e2e machine test suite")
|
||||
}
|
||||
|
||||
// TestRegisterDER attests a DER and queries the attested DER from the chain
|
||||
func (s *E2ETestSuite) TestRegisterDER() {
|
||||
val := s.network.Validators[0]
|
||||
|
||||
der := dertypes.DER{
|
||||
ZigbeeID: "0123456789123456",
|
||||
DirigeraID: "1123456789123456",
|
||||
DirigeraMAC: "",
|
||||
PlmntAddress: val.Address.String(),
|
||||
LiquidAddress: "liquidder",
|
||||
}
|
||||
|
||||
msg1 := dertypes.NewMsgRegisterDER(val.Address.String(), &der)
|
||||
out, err := e2etestutil.BuildSignBroadcastTx(s.T(), val.Address, msg1)
|
||||
s.Require().NoError(err)
|
||||
|
||||
s.Require().NoError(s.network.WaitForNextBlock())
|
||||
s.Require().NoError(s.network.WaitForNextBlock())
|
||||
rawLog, err := clitestutil.GetRawLogFromTxOut(val, out)
|
||||
s.Require().NoError(err)
|
||||
|
||||
assert.Contains(s.T(), rawLog, "planetmintgo.der.MsgRegisterDER")
|
||||
|
||||
// Check if DER can be resolved
|
||||
output, err := clitestutil.ExecTestCLICmd(val.ClientCtx, dercli.CmdDer(), []string{
|
||||
der.ZigbeeID,
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
assert.Contains(s.T(), output.String(), "0123456789123456")
|
||||
|
||||
// Check if the NFT got created
|
||||
output, err = clitestutil.ExecTestCLICmd(val.ClientCtx, dercli.CmdNft(), []string{
|
||||
der.ZigbeeID,
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
assert.Contains(s.T(), output.String(), "0123456789123456")
|
||||
}
|
||||
@ -1,57 +1,25 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
|
||||
"github.com/cosmos/cosmos-sdk/store"
|
||||
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
|
||||
dertypes "github.com/planetmint/planetmint-go/x/der/types"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
dbm "github.com/cometbft/cometbft-db"
|
||||
|
||||
"github.com/cometbft/cometbft/libs/log"
|
||||
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func createTestKeeper(t *testing.T) (Keeper, sdk.Context) {
|
||||
db := dbm.NewMemDB()
|
||||
cms := store.NewCommitMultiStore(db)
|
||||
storeKey := sdk.NewKVStoreKey("der")
|
||||
memKey := storetypes.NewMemoryStoreKey("mem_der")
|
||||
cms.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db)
|
||||
cms.MountStoreWithDB(memKey, storetypes.StoreTypeMemory, nil)
|
||||
err := cms.LoadLatestVersion()
|
||||
require.NoError(t, err)
|
||||
|
||||
interfaceRegistry := cdctypes.NewInterfaceRegistry()
|
||||
cdc := codec.NewProtoCodec(interfaceRegistry)
|
||||
ps := paramtypes.NewSubspace(cdc, codec.NewLegacyAmino(), storeKey, memKey, "DerParams")
|
||||
keeper := NewKeeper(cdc, storeKey, memKey, ps, nil, "") // pass nil for MachineKeeper and empty rootDir for this test
|
||||
ctx := sdk.NewContext(cms, tmproto.Header{}, false, log.NewNopLogger())
|
||||
return *keeper, ctx
|
||||
}
|
||||
|
||||
func TestStoreDerAssetAndLookupDerAsset(t *testing.T) {
|
||||
keeper, ctx := createTestKeeper(t)
|
||||
keeper, ctx := CreateTestKeeper(t)
|
||||
asset := dertypes.DER{
|
||||
ZigbeeID: "test-zigbee-id",
|
||||
// Add other fields as needed for your DER struct
|
||||
}
|
||||
|
||||
keeper.StoreDerAsset(ctx, asset)
|
||||
result, found := keeper.LookupDerAsset(ctx, "test-zigbee-id")
|
||||
require.True(t, found)
|
||||
require.Equal(t, asset.ZigbeeID, result.ZigbeeID)
|
||||
// Add more assertions for other fields as needed
|
||||
}
|
||||
|
||||
func TestLookupDerAsset_NotFound(t *testing.T) {
|
||||
keeper, ctx := createTestKeeper(t)
|
||||
keeper, ctx := CreateTestKeeper(t)
|
||||
_, found := keeper.LookupDerAsset(ctx, "nonexistent-id")
|
||||
require.False(t, found)
|
||||
}
|
||||
|
||||
@ -3,55 +3,23 @@ package keeper
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
|
||||
"github.com/cosmos/cosmos-sdk/store"
|
||||
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
|
||||
dertypes "github.com/planetmint/planetmint-go/x/der/types"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
dbm "github.com/cometbft/cometbft-db"
|
||||
|
||||
"github.com/cometbft/cometbft/libs/log"
|
||||
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
|
||||
)
|
||||
|
||||
func createTestKeeperNft(t *testing.T) (Keeper, sdk.Context) {
|
||||
db := dbm.NewMemDB()
|
||||
cms := store.NewCommitMultiStore(db)
|
||||
storeKey := sdk.NewKVStoreKey("der")
|
||||
memKey := storetypes.NewMemoryStoreKey("mem_der")
|
||||
cms.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db)
|
||||
cms.MountStoreWithDB(memKey, storetypes.StoreTypeMemory, nil)
|
||||
err := cms.LoadLatestVersion()
|
||||
require.NoError(t, err)
|
||||
|
||||
interfaceRegistry := cdctypes.NewInterfaceRegistry()
|
||||
cdc := codec.NewProtoCodec(interfaceRegistry)
|
||||
ps := paramtypes.NewSubspace(cdc, codec.NewLegacyAmino(), storeKey, memKey, "DerParams")
|
||||
keeper := NewKeeper(cdc, storeKey, memKey, ps, nil, "")
|
||||
ctx := sdk.NewContext(cms, tmproto.Header{}, false, log.NewNopLogger())
|
||||
return *keeper, ctx
|
||||
}
|
||||
|
||||
func TestStoreLiquidDerAssetAndLookupLiquidDerAsset(t *testing.T) {
|
||||
keeper, ctx := createTestKeeperNft(t)
|
||||
keeper, ctx := CreateTestKeeper(t)
|
||||
asset := dertypes.LiquidDerAsset{
|
||||
ZigbeeID: "liquid-test-zigbee-id",
|
||||
// Add other fields as needed for your LiquidDerAsset struct
|
||||
}
|
||||
|
||||
keeper.StoreLiquidDerAsset(ctx, asset)
|
||||
result, found := keeper.LookupLiquidDerAsset(ctx, "liquid-test-zigbee-id")
|
||||
require.True(t, found)
|
||||
require.Equal(t, asset.ZigbeeID, result.ZigbeeID)
|
||||
// Add more assertions for other fields as needed
|
||||
}
|
||||
|
||||
func TestLookupLiquidDerAsset_NotFound(t *testing.T) {
|
||||
keeper, ctx := createTestKeeperNft(t)
|
||||
keeper, ctx := CreateTestKeeper(t)
|
||||
_, found := keeper.LookupLiquidDerAsset(ctx, "nonexistent-id")
|
||||
require.False(t, found)
|
||||
}
|
||||
|
||||
34
x/der/keeper/test_helpers.go
Normal file
34
x/der/keeper/test_helpers.go
Normal file
@ -0,0 +1,34 @@
|
||||
package keeper
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
dbm "github.com/cometbft/cometbft-db"
|
||||
"github.com/cometbft/cometbft/libs/log"
|
||||
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
|
||||
"github.com/cosmos/cosmos-sdk/codec"
|
||||
cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
|
||||
"github.com/cosmos/cosmos-sdk/store"
|
||||
storetypes "github.com/cosmos/cosmos-sdk/store/types"
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func CreateTestKeeper(t *testing.T) (Keeper, sdk.Context) {
|
||||
db := dbm.NewMemDB()
|
||||
cms := store.NewCommitMultiStore(db)
|
||||
storeKey := sdk.NewKVStoreKey("der")
|
||||
memKey := storetypes.NewMemoryStoreKey("mem_der")
|
||||
cms.MountStoreWithDB(storeKey, storetypes.StoreTypeIAVL, db)
|
||||
cms.MountStoreWithDB(memKey, storetypes.StoreTypeMemory, nil)
|
||||
err := cms.LoadLatestVersion()
|
||||
require.NoError(t, err)
|
||||
|
||||
interfaceRegistry := cdctypes.NewInterfaceRegistry()
|
||||
cdc := codec.NewProtoCodec(interfaceRegistry)
|
||||
ps := paramtypes.NewSubspace(cdc, codec.NewLegacyAmino(), storeKey, memKey, "DerParams")
|
||||
keeper := NewKeeper(cdc, storeKey, memKey, ps, nil, "")
|
||||
ctx := sdk.NewContext(cms, tmproto.Header{}, false, log.NewNopLogger())
|
||||
return *keeper, ctx
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user