mirror of
https://github.com/planetmint/planetmint-go.git
synced 2025-03-30 15:08:28 +00:00

* added upper and lower case TA resolution testing * added more detailed error reporting to the ValidateSignature method. * extended test cases to test and verify these errs and their differences * fixed CID attestation issue. CIDs are send in web compatible encoding that is not hex encoded and can be utilized without any further decoding on the server side. * added checks and error handling for the Ta store object storage/loading Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
81 lines
2.6 KiB
Go
81 lines
2.6 KiB
Go
package keeper_test
|
|
|
|
import (
|
|
"context"
|
|
"encoding/hex"
|
|
"testing"
|
|
|
|
"planetmint-go/config"
|
|
keepertest "planetmint-go/testutil/keeper"
|
|
"planetmint-go/testutil/sample"
|
|
"planetmint-go/x/asset/keeper"
|
|
"planetmint-go/x/asset/types"
|
|
|
|
"github.com/btcsuite/btcd/btcutil/hdkeychain"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func setupMsgServer(t testing.TB) (types.MsgServer, context.Context) {
|
|
k, ctx := keepertest.AssetKeeper(t)
|
|
return keeper.NewMsgServerImpl(*k), sdk.WrapSDKContext(ctx)
|
|
}
|
|
|
|
func TestMsgServer(t *testing.T) {
|
|
ms, ctx := setupMsgServer(t)
|
|
require.NotNil(t, ms)
|
|
require.NotNil(t, ctx)
|
|
}
|
|
|
|
func TestMsgServerNotarizeAsset(t *testing.T) {
|
|
ext_sk, ppk := sample.ExtendedKeyPair(config.PlmntNetParams)
|
|
xskKey, _ := hdkeychain.NewKeyFromString(ext_sk)
|
|
privKey, _ := xskKey.ECPrivKey()
|
|
byte_key := privKey.Serialize()
|
|
sk := hex.EncodeToString(byte_key)
|
|
cid, signatureHex := sample.Asset(sk)
|
|
|
|
msg := types.NewMsgNotarizeAsset(sk, cid, signatureHex, ppk)
|
|
msgServer, ctx := setupMsgServer(t)
|
|
res, err := msgServer.NotarizeAsset(ctx, msg)
|
|
if assert.NoError(t, err) {
|
|
assert.Equal(t, &types.MsgNotarizeAssetResponse{}, res)
|
|
}
|
|
}
|
|
|
|
func TestMsgServerNotarizeAssetMachineNotFound(t *testing.T) {
|
|
sk, _ := sample.KeyPair()
|
|
msg := types.NewMsgNotarizeAsset(sk, "cid", "sign", sk)
|
|
msgServer, ctx := setupMsgServer(t)
|
|
_, err := msgServer.NotarizeAsset(ctx, msg)
|
|
assert.EqualError(t, err, "machine not found")
|
|
}
|
|
|
|
func TestMsgServerNotarizeAssetInvalidAssetSignatureType(t *testing.T) {
|
|
_, pk := sample.ExtendedKeyPair(config.PlmntNetParams)
|
|
hex_string := hex.EncodeToString([]byte("cid"))
|
|
msg := types.NewMsgNotarizeAsset(pk, hex_string, "sign", pk)
|
|
msgServer, ctx := setupMsgServer(t)
|
|
_, err := msgServer.NotarizeAsset(ctx, msg)
|
|
assert.EqualError(t, err, "invalid signature hex string")
|
|
}
|
|
|
|
func TestMsgServerNotarizeAssetInvalidAssetSignature(t *testing.T) {
|
|
_, pk := sample.ExtendedKeyPair(config.PlmntNetParams)
|
|
hex_string_cid := hex.EncodeToString([]byte("cid"))
|
|
hex_string_sid := hex.EncodeToString([]byte("sign"))
|
|
msg := types.NewMsgNotarizeAsset(pk, hex_string_cid, hex_string_sid, pk)
|
|
msgServer, ctx := setupMsgServer(t)
|
|
_, err := msgServer.NotarizeAsset(ctx, msg)
|
|
assert.EqualError(t, err, "invalid signature")
|
|
}
|
|
|
|
func TestMsgServerNotarizeAssetInvalidXPubKey(t *testing.T) {
|
|
_, pk := sample.KeyPair()
|
|
msg := types.NewMsgNotarizeAsset(pk, "cid", "sign", pk)
|
|
msgServer, ctx := setupMsgServer(t)
|
|
_, err := msgServer.NotarizeAsset(ctx, msg)
|
|
assert.EqualError(t, err, "could not convert xpub key to hex pub key")
|
|
}
|