Jürgen Eckel 03211743fc
Inspellning registration support (#499)
* added DER module
* scaffold type --module der DER zigbeeID dirigeraID dirigeraMAC plmntAddress liquidAddress
* ./ignite scaffold message registerDER der:DER --module der
* changed URL
* storing DER
* added query
* added liquid der asset type
* added der asset notarization logic
* added nft notarization for DER
* added nft query
* added query and fixed linter aspects
* added store testcases to the der module
* added test cases adjusted to the linter requirements
* addd ignite generate code changes
* added metadata json instead of specific data

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2025-05-26 15:52:33 +02:00

83 lines
2.6 KiB
Go

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",
PlmntAddress: val.Address.String(),
LiquidAddress: "liquidder",
MetadataJson: "{\"dirigeraID\": \"0123456789123456\", \"dirigeraMac\": \"00:00:00:00:00:00\"}",
}
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")
}