mirror of
https://github.com/planetmint/planetmint-go.git
synced 2025-09-13 11:50:11 +00:00

* 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>
83 lines
2.6 KiB
Go
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")
|
|
}
|