xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
tests
libxrpl
protocol_autogen
transactions
CheckCancelTests.cpp
1
// Auto-generated unit tests for transaction CheckCancel
2
3
4
#include <gtest/gtest.h>
5
6
#include <protocol_autogen/TestHelpers.h>
7
8
#include <xrpl/protocol/SecretKey.h>
9
#include <xrpl/protocol/Seed.h>
10
#include <xrpl/protocol/STTx.h>
11
#include <xrpl/protocol_autogen/transactions/CheckCancel.h>
12
#include <xrpl/protocol_autogen/transactions/AccountSet.h>
13
14
#include <
string
>
15
16
namespace
xrpl::transactions
{
17
18
// 1 & 4) Set fields via builder setters, build, then read them back via
19
// wrapper getters. After build(), validate() should succeed.
20
TEST
(TransactionsCheckCancelTests, BuilderSettersRoundTrip)
21
{
22
// Generate a deterministic keypair for signing
23
auto
const
[publicKey, secretKey] =
24
generateKeyPair
(
KeyType::Secp256k1
,
generateSeed
(
"testCheckCancel"
));
25
26
// Common transaction fields
27
auto
const
accountValue =
calcAccountID
(publicKey);
28
std::uint32_t
const
sequenceValue = 1;
29
auto
const
feeValue =
canonical_AMOUNT
();
30
31
// Transaction-specific field values
32
auto
const
checkIDValue =
canonical_UINT256
();
33
34
CheckCancelBuilder
builder{
35
accountValue,
36
checkIDValue,
37
sequenceValue,
38
feeValue
39
};
40
41
// Set optional fields
42
43
auto
tx = builder.
build
(publicKey, secretKey);
44
45
std::string
reason;
46
EXPECT_TRUE(tx.validate(reason)) << reason;
47
48
// Verify signing was applied
49
EXPECT_FALSE(tx.getSigningPubKey().empty());
50
EXPECT_TRUE(tx.hasTxnSignature());
51
52
// Verify common fields
53
EXPECT_EQ(tx.getAccount(), accountValue);
54
EXPECT_EQ(tx.getSequence(), sequenceValue);
55
EXPECT_EQ(tx.getFee(), feeValue);
56
57
// Verify required fields
58
{
59
auto
const
& expected = checkIDValue;
60
auto
const
actual = tx.getCheckID();
61
expectEqualField
(expected, actual,
"sfCheckID"
);
62
}
63
64
// Verify optional fields
65
}
66
67
// 2 & 4) Start from an STTx, construct a builder from it, build a new wrapper,
68
// and verify all fields match.
69
TEST
(TransactionsCheckCancelTests, BuilderFromStTxRoundTrip)
70
{
71
// Generate a deterministic keypair for signing
72
auto
const
[publicKey, secretKey] =
73
generateKeyPair
(
KeyType::Secp256k1
,
generateSeed
(
"testCheckCancelFromTx"
));
74
75
// Common transaction fields
76
auto
const
accountValue =
calcAccountID
(publicKey);
77
std::uint32_t
const
sequenceValue = 2;
78
auto
const
feeValue =
canonical_AMOUNT
();
79
80
// Transaction-specific field values
81
auto
const
checkIDValue =
canonical_UINT256
();
82
83
// Build an initial transaction
84
CheckCancelBuilder
initialBuilder{
85
accountValue,
86
checkIDValue,
87
sequenceValue,
88
feeValue
89
};
90
91
92
auto
initialTx = initialBuilder.
build
(publicKey, secretKey);
93
94
// Create builder from existing STTx
95
CheckCancelBuilder
builderFromTx{initialTx.getSTTx()};
96
97
auto
rebuiltTx = builderFromTx.
build
(publicKey, secretKey);
98
99
std::string
reason;
100
EXPECT_TRUE(rebuiltTx.validate(reason)) << reason;
101
102
// Verify common fields
103
EXPECT_EQ(rebuiltTx.getAccount(), accountValue);
104
EXPECT_EQ(rebuiltTx.getSequence(), sequenceValue);
105
EXPECT_EQ(rebuiltTx.getFee(), feeValue);
106
107
// Verify required fields
108
{
109
auto
const
& expected = checkIDValue;
110
auto
const
actual = rebuiltTx.getCheckID();
111
expectEqualField
(expected, actual,
"sfCheckID"
);
112
}
113
114
// Verify optional fields
115
}
116
117
// 3) Verify wrapper throws when constructed from wrong transaction type.
118
TEST
(TransactionsCheckCancelTests, WrapperThrowsOnWrongTxType)
119
{
120
// Build a valid transaction of a different type
121
auto
const
[pk, sk] =
122
generateKeyPair
(
KeyType::Secp256k1
,
generateSeed
(
"testWrongType"
));
123
auto
const
account =
calcAccountID
(pk);
124
125
AccountSetBuilder
wrongBuilder{account, 1,
canonical_AMOUNT
()};
126
auto
wrongTx = wrongBuilder.
build
(pk, sk);
127
128
EXPECT_THROW(
CheckCancel
{wrongTx.getSTTx()},
std::runtime_error
);
129
}
130
131
// 4) Verify builder throws when constructed from wrong transaction type.
132
TEST
(TransactionsCheckCancelTests, BuilderThrowsOnWrongTxType)
133
{
134
// Build a valid transaction of a different type
135
auto
const
[pk, sk] =
136
generateKeyPair
(
KeyType::Secp256k1
,
generateSeed
(
"testWrongTypeBuilder"
));
137
auto
const
account =
calcAccountID
(pk);
138
139
AccountSetBuilder
wrongBuilder{account, 1,
canonical_AMOUNT
()};
140
auto
wrongTx = wrongBuilder.
build
(pk, sk);
141
142
EXPECT_THROW(
CheckCancelBuilder
{wrongTx.getSTTx()},
std::runtime_error
);
143
}
144
145
146
}
std::string
xrpl::transactions::AccountSetBuilder
Builder for AccountSet transactions.
Definition
protocol_autogen/transactions/AccountSet.h:319
xrpl::transactions::AccountSetBuilder::build
AccountSet build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the AccountSet wrapper.
Definition
protocol_autogen/transactions/AccountSet.h:470
xrpl::transactions::CheckCancelBuilder
Builder for CheckCancel transactions.
Definition
protocol_autogen/transactions/CheckCancel.h:70
xrpl::transactions::CheckCancelBuilder::build
CheckCancel build(PublicKey const &publicKey, SecretKey const &secretKey)
Build and return the CheckCancel wrapper.
Definition
protocol_autogen/transactions/CheckCancel.h:124
xrpl::transactions::CheckCancel
Transaction: CheckCancel.
Definition
protocol_autogen/transactions/CheckCancel.h:30
std::uint32_t
xrpl::transactions
Definition
TransactionBase.h:15
xrpl::transactions::TEST
TEST(TransactionsAccountDeleteTests, BuilderSettersRoundTrip)
Definition
AccountDeleteTests.cpp:20
xrpl::KeyType::Secp256k1
@ Secp256k1
Definition
KeyType.h:9
xrpl::canonical_UINT256
UInt256Value canonical_UINT256()
Definition
/libxrpl/protocol_autogen/TestHelpers.h:83
xrpl::generateSeed
Seed generateSeed(std::string const &passPhrase)
Generate a seed deterministically.
Definition
Seed.cpp:58
xrpl::generateKeyPair
std::pair< PublicKey, SecretKey > generateKeyPair(KeyType type, Seed const &seed)
Generate a key pair deterministically.
Definition
SecretKey.cpp:338
xrpl::canonical_AMOUNT
AmountValue canonical_AMOUNT()
Definition
/libxrpl/protocol_autogen/TestHelpers.h:104
xrpl::calcAccountID
AccountID calcAccountID(PublicKey const &pk)
Definition
AccountID.cpp:149
xrpl::expectEqualField
void expectEqualField(T const &expected, T const &actual, char const *fieldName)
Definition
/libxrpl/protocol_autogen/TestHelpers.h:178
std::runtime_error
string
Generated by
1.17.0