1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-16 04:24:56 +02:00

api/message/json/codec_test.go: Test TransactionTrace

This commit is contained in:
Henrik Hautakoski 2023-05-25 18:20:58 +02:00
parent 867f601bc5
commit ebadf4d833

View file

@ -64,3 +64,136 @@ func TestJson_DecodeActionTrace(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, expected, msg)
}
func TestJson_EncodeTransactionTrace(t *testing.T) {
tx_id := "ed04516bdd1194aa5f0ab4c8c5445eec542c17f45a85bb3e9e4bc33e1a2486f8"
ts := time.Unix(1865257805, int64(time.Millisecond)*500).UTC()
block_num := uint32(283781923)
msg := message.TransactionTrace{
Timestamp: ts,
BlockNum: block_num,
ID: tx_id,
Status: "executed",
CPUUsageUS: 442,
NetUsage: 128,
NetUsageWords: 16,
Elapsed: 22,
Scheduled: true,
ActionTraces: []message.ActionTrace{
{
TxID: tx_id,
BlockNum: block_num,
Timestamp: ts,
Receiver: "actor01",
Contract: "coolgame",
Name: "mine",
Authorization: []message.PermissionLevel{
{
Actor: "actor01",
Permission: "active",
},
},
Data: map[string]any{
"equipment_id": 1234,
"location_id": 5445453,
},
Return: []byte{0x08, 0xf1},
},
{
TxID: tx_id,
BlockNum: block_num,
Timestamp: ts,
Receiver: "coolgame",
Contract: "coolgame",
Name: "addpoints",
Authorization: []message.PermissionLevel{
{
Actor: "coolgame",
Permission: "usrpoints",
},
},
Data: map[string]any{
"points": "1023.0423 SCAM",
},
Error: 2,
Except: "some error string",
Return: []byte{0xff, 0x02},
},
},
Except: "errstr",
Error: 2,
}
expected := `{"id":"ed04516bdd1194aa5f0ab4c8c5445eec542c17f45a85bb3e9e4bc33e1a2486f8","blocknum":283781923,"blocktimestamp":"2029-02-08T15:10:05.500","status":"executed","cpu_usage_us":442,"net_usage_words":16,"elapsed":22,"net_usage":128,"scheduled":true,"action_traces":[{"tx_id":"ed04516bdd1194aa5f0ab4c8c5445eec542c17f45a85bb3e9e4bc33e1a2486f8","blocknum":283781923,"blocktimestamp":"2029-02-08T15:10:05.500","name":"mine","contract":"coolgame","receiver":"actor01","data":{"equipment_id":1234,"location_id":5445453},"authorization":[{"actor":"actor01","permission":"active"}],"except":"","error":0,"return":"CPE="},{"tx_id":"ed04516bdd1194aa5f0ab4c8c5445eec542c17f45a85bb3e9e4bc33e1a2486f8","blocknum":283781923,"blocktimestamp":"2029-02-08T15:10:05.500","name":"addpoints","contract":"coolgame","receiver":"coolgame","data":{"points":"1023.0423 SCAM"},"authorization":[{"actor":"coolgame","permission":"usrpoints"}],"except":"some error string","error":2,"return":"/wI="}],"except":"errstr","error":2}`
data, err := encoder(msg)
assert.NoError(t, err)
assert.Equal(t, expected, string(data))
}
func TestJson_DecodeTransactionTrace(t *testing.T) {
tx_id := "f58bf8a0137fcea644dbc2b0cc5b6a017a848cd33b2e924703e7e3c6d1ca0c2e"
ts := time.Unix(1730755743, int64(time.Millisecond)*500).UTC()
block_num := uint32(2378197231)
input := `{"id":"f58bf8a0137fcea644dbc2b0cc5b6a017a848cd33b2e924703e7e3c6d1ca0c2e","blocknum":2378197231,"blocktimestamp":"2024-11-04T21:29:03.500","status":"executed","cpu_usage_us":442,"net_usage_words":16,"elapsed":22,"net_usage":128,"scheduled":true,"action_traces":[{"tx_id":"f58bf8a0137fcea644dbc2b0cc5b6a017a848cd33b2e924703e7e3c6d1ca0c2e","blocknum":2378197231,"blocktimestamp":"2024-11-04T21:29:03.500","name":"mine","contract":"","receiver":"actor01","data":{"equipment_id":1234,"location_id":5445453},"authorization":[{"actor":"actor01","permission":"active"}],"except":"","error":2,"return":"AQI="},{"tx_id":"f58bf8a0137fcea644dbc2b0cc5b6a017a848cd33b2e924703e7e3c6d1ca0c2e","blocknum":2378197231,"blocktimestamp":"2024-11-04T21:29:03.500","name":"addpoints","contract":"","receiver":"coolgame","data":{"points":"1023.0423 SCAM"},"authorization":[{"actor":"coolgame","permission":"usrpoints"}],"except":"","error":2,"return":"CPE="}],"except":"errstr","error":2}`
expected := message.TransactionTrace{
Timestamp: ts,
BlockNum: block_num,
ID: tx_id,
Status: "executed",
CPUUsageUS: 442,
NetUsage: 128,
NetUsageWords: 16,
Elapsed: 22,
Scheduled: true,
ActionTraces: []message.ActionTrace{
{
TxID: tx_id,
BlockNum: block_num,
Timestamp: ts,
Receiver: "actor01",
Name: "mine",
Authorization: []message.PermissionLevel{
{
Actor: "actor01",
Permission: "active",
},
},
Data: map[string]any{
"equipment_id": float64(1234),
"location_id": float64(5445453),
},
Error: 2,
Return: []byte{0x01, 0x02},
},
{
TxID: tx_id,
BlockNum: block_num,
Timestamp: ts,
Receiver: "coolgame",
Name: "addpoints",
Authorization: []message.PermissionLevel{
{
Actor: "coolgame",
Permission: "usrpoints",
},
},
Data: map[string]any{
"points": "1023.0423 SCAM",
},
Error: 2,
Return: []byte{0x08, 0xf1},
},
},
Except: "errstr",
Error: 2,
}
msg := message.TransactionTrace{}
err := decoder([]byte(input), &msg)
assert.NoError(t, err)
assert.Equal(t, expected, msg)
}