Skip to content

Commit afe3ad9

Browse files
committed
simplify sendTransfer test and revert changes to testnet DB. Add sendTransfer tests #59
1 parent ca996b9 commit afe3ad9

File tree

19 files changed

+311
-320
lines changed

19 files changed

+311
-320
lines changed

source/api/extended.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ Extended::prepareTransfers(const Types::Trytes& seed, int security,
459459
const auto balances = balancesResponse.getBalances();
460460

461461
std::vector<Models::Input> confirmedInputs;
462-
int totalBalance = 0;
462+
int64_t totalBalance = 0;
463463
int i = 0;
464464
for (const auto& balance : balances) {
465465
long thisBalance = std::stol(balance);

test/include/test/utils/constants.hpp

Lines changed: 12 additions & 297 deletions
Large diffs are not rendered by default.

test/source/api/extended/replay_bundle.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
TEST(Extended, ReplayBundle) {
3737
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
3838

39-
auto res = api.replayBundle(BUNDLE_3_TRX_1_HASH, 27, 14);
39+
auto res = api.replayBundle(BUNDLE_1_TRX_1_HASH, 27, 14);
4040

4141
ASSERT_EQ(res.getSuccessfully().size(), 4UL);
4242
ASSERT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true }));
@@ -45,14 +45,14 @@ TEST(Extended, ReplayBundle) {
4545
TEST(Extended, ReplayBundleNonTailTransaction) {
4646
IOTA::API::Extended api(get_proxy_host(), get_proxy_port());
4747

48-
EXPECT_EXCEPTION(api.replayBundle(BUNDLE_3_TRX_4_HASH, 27, 14), IOTA::Errors::IllegalState,
48+
EXPECT_EXCEPTION(api.replayBundle(BUNDLE_1_TRX_4_HASH, 27, 14), IOTA::Errors::IllegalState,
4949
"Invalid tail transaction supplied.");
5050
}
5151

5252
TEST(Extended, ReplayBundleBundleHash) {
5353
IOTA::API::Extended api(get_proxy_host(), get_proxy_port());
5454

55-
EXPECT_EXCEPTION(api.replayBundle(BUNDLE_3_HASH, 27, 14), IOTA::Errors::IllegalState,
55+
EXPECT_EXCEPTION(api.replayBundle(BUNDLE_1_HASH, 27, 14), IOTA::Errors::IllegalState,
5656
"Invalid transaction supplied.");
5757
}
5858

Lines changed: 294 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,294 @@
1+
//
2+
// MIT License
3+
//
4+
// Copyright (c) 2017-2018 Thibault Martinez and Simon Ninon
5+
//
6+
// Permission is hereby granted, free of charge, to any person obtaining a copy
7+
// of this software and associated documentation files (the "Software"), to deal
8+
// in the Software without restriction, including without limitation the rights
9+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
// copies of the Software, and to permit persons to whom the Software is
11+
// furnished to do so, subject to the following conditions:
12+
//
13+
// The above copyright notice and this permission notice shall be included in all
14+
// copies or substantial portions of the Software.
15+
//
16+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
// SOFTWARE.
23+
//
24+
//
25+
26+
#include <gtest/gtest.h>
27+
28+
#include <iota/api/extended.hpp>
29+
#include <iota/crypto/checksum.hpp>
30+
#include <iota/errors/bad_request.hpp>
31+
#include <iota/errors/illegal_state.hpp>
32+
#include <test/utils/configuration.hpp>
33+
#include <test/utils/constants.hpp>
34+
#include <test/utils/expect_exception.hpp>
35+
36+
TEST(Extended, SendTransfer) {
37+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
38+
39+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
40+
"TESTTAG99999999999999999999" };
41+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
42+
43+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
44+
0, 2 };
45+
std::vector<IOTA::Models::Input> inputs = { input };
46+
47+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
48+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM);
49+
50+
ASSERT_EQ(res.getSuccessfully().size(), 4UL);
51+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true }));
52+
}
53+
54+
TEST(Extended, SendTransferNoMessage) {
55+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
56+
57+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "",
58+
"TESTTAG99999999999999999999" };
59+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
60+
61+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
62+
0, 2 };
63+
std::vector<IOTA::Models::Input> inputs = { input };
64+
65+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
66+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM);
67+
68+
ASSERT_EQ(res.getSuccessfully().size(), 4UL);
69+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true }));
70+
}
71+
72+
TEST(Extended, SendTransferInvalidTransferAddress) {
73+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
74+
75+
IOTA::Models::Transfer transfer = { "invalid__", 42, "TESTMSG", "TESTTAG99999999999999999999" };
76+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
77+
78+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
79+
0, 2 };
80+
std::vector<IOTA::Models::Input> inputs = { input };
81+
82+
EXPECT_EXCEPTION(api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
83+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM),
84+
IOTA::Errors::IllegalState, "Invalid Transfer");
85+
}
86+
87+
TEST(Extended, SendTransferInvalidTransferMessage) {
88+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
89+
90+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "invalid__",
91+
"TESTTAG99999999999999999999" };
92+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
93+
94+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
95+
0, 2 };
96+
std::vector<IOTA::Models::Input> inputs = { input };
97+
98+
EXPECT_EXCEPTION(api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
99+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM),
100+
IOTA::Errors::IllegalState, "Invalid Transfer");
101+
}
102+
103+
TEST(Extended, SendTransferInvalidTransferTag) {
104+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
105+
106+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
107+
"invalid__" };
108+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
109+
110+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
111+
0, 2 };
112+
std::vector<IOTA::Models::Input> inputs = { input };
113+
114+
EXPECT_EXCEPTION(api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
115+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM),
116+
IOTA::Errors::IllegalState, "Invalid Transfer");
117+
}
118+
119+
TEST(Extended, SendTransferNotEnoughFund) {
120+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
121+
122+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM,
123+
ACCOUNT_5_ADDRESS_1_FUND + 1, "TESTMSG",
124+
"TESTTAG99999999999999999999" };
125+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
126+
127+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
128+
0, 2 };
129+
std::vector<IOTA::Models::Input> inputs = { input };
130+
131+
EXPECT_EXCEPTION(api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
132+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM),
133+
IOTA::Errors::IllegalState, "Not enough balance");
134+
}
135+
136+
TEST(Extended, SendTransferZeroTransfer) {
137+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
138+
139+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 0, "TESTMSG",
140+
"TESTTAG99999999999999999999" };
141+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
142+
143+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
144+
0, 2 };
145+
std::vector<IOTA::Models::Input> inputs = { input };
146+
147+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
148+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM);
149+
150+
ASSERT_EQ(res.getSuccessfully().size(), 1UL);
151+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true }));
152+
}
153+
154+
TEST(Extended, SendTransferInvalidRemainderAddress) {
155+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
156+
157+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
158+
"TESTTAG99999999999999999999" };
159+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
160+
161+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
162+
0, 2 };
163+
std::vector<IOTA::Models::Input> inputs = { input };
164+
165+
EXPECT_EXCEPTION(api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs, "invalid__"),
166+
IOTA::Errors::IllegalState, "Invalid Remainder");
167+
}
168+
169+
TEST(Extended, SendTransferInvalidSeed) {
170+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
171+
172+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
173+
"TESTTAG99999999999999999999" };
174+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
175+
176+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
177+
0, 2 };
178+
std::vector<IOTA::Models::Input> inputs = { input };
179+
180+
EXPECT_EXCEPTION(api.sendTransfer("invalid__", 2, 27, 14, transfers, inputs,
181+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM),
182+
IOTA::Errors::IllegalState, "Invalid Seed");
183+
}
184+
185+
TEST(Extended, SendTransferNoInput) {
186+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
187+
188+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
189+
"TESTTAG99999999999999999999" };
190+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
191+
192+
std::vector<IOTA::Models::Input> inputs = {};
193+
194+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
195+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM);
196+
197+
ASSERT_EQ(res.getSuccessfully().size(), 4UL);
198+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true }));
199+
}
200+
201+
TEST(Extended, SendTransferNoRemainderAddress) {
202+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
203+
204+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
205+
"TESTTAG99999999999999999999" };
206+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
207+
208+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
209+
0, 2 };
210+
std::vector<IOTA::Models::Input> inputs = { input };
211+
212+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs, "");
213+
214+
ASSERT_EQ(res.getSuccessfully().size(), 4UL);
215+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true }));
216+
}
217+
218+
TEST(Extended, SendTransferSecurity) {
219+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
220+
221+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
222+
"TESTTAG99999999999999999999" };
223+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
224+
225+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
226+
0, 3 };
227+
std::vector<IOTA::Models::Input> inputs = { input };
228+
229+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
230+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM);
231+
232+
ASSERT_EQ(res.getSuccessfully().size(), 5UL);
233+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true, true }));
234+
}
235+
236+
TEST(Extended, SendTransferLongMessage) {
237+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
238+
239+
IOTA::Models::Transfer transfer = {
240+
ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42,
241+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
242+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
243+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
244+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
245+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
246+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
247+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
248+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
249+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
250+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
251+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
252+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
253+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
254+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
255+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
256+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
257+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
258+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
259+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
260+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
261+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
262+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
263+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
264+
"ZZZZZZZZZZZZZZZZZZZZZZZZZZ",
265+
"TESTTAG99999999999999999999"
266+
};
267+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
268+
269+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
270+
0, 2 };
271+
std::vector<IOTA::Models::Input> inputs = { input };
272+
273+
auto res = api.sendTransfer(ACCOUNT_5_SEED, 2, 27, 14, transfers, inputs,
274+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM);
275+
276+
ASSERT_EQ(res.getSuccessfully().size(), 5UL);
277+
EXPECT_EQ(res.getSuccessfully(), std::vector<bool>({ true, true, true, true, true }));
278+
}
279+
280+
TEST(Extended, SendTransferInvalidSecurity) {
281+
IOTA::API::Extended api(get_proxy_host(), get_proxy_port(), true, 380);
282+
283+
IOTA::Models::Transfer transfer = { ACCOUNT_5_ADDRESS_2_HASH_WITHOUT_CHECKSUM, 42, "TESTMSG",
284+
"TESTTAG99999999999999999999" };
285+
std::vector<IOTA::Models::Transfer> transfers = { transfer };
286+
287+
IOTA::Models::Input input = { ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM, ACCOUNT_5_ADDRESS_1_FUND,
288+
0, 2 };
289+
std::vector<IOTA::Models::Input> inputs = { input };
290+
291+
EXPECT_EXCEPTION(api.sendTransfer(ACCOUNT_5_SEED, 42, 27, 14, transfers, inputs,
292+
ACCOUNT_5_ADDRESS_1_HASH_WITHOUT_CHECKSUM),
293+
IOTA::Errors::IllegalState, "Invalid Security Level");
294+
}

test/testnet/create_testing_data.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,3 @@
2121

2222
# Propagate
2323
api.send_transfer(1, [output_trx])
24-
25-
#
26-
# Create a new bundle transaction
27-
# Send from 42 iota account 5 to account 5
28-
#
29-
30-
# Connect to the node
31-
api = Iota('http://localhost:14265', "UYXMZDTITKOAPKPFCAZYB9DTPJ9VARFKCWVSYIOZROLBSUJECBLBZA99TTBFJTPUXEYN9PETLVENOHRKJ")
32-
33-
# Trx setup
34-
output_trx = ProposedTransaction(
35-
address = Address("BUDGFXLIN9FYRZGHQHQKEVIROEKCOVZUQKIFGRSOWGVBQEGVMPWDEAKGDPFPXUODDYVDLCEUL9VPPMLKA"),
36-
message = TryteString.from_string("Sending some money"),
37-
tag = Tag("PACIFICSOUND"),
38-
value = 42)
39-
40-
# Propagate
41-
api.send_transfer(1, [output_trx])

test/testnet/testnetdb/000057.log

13.5 KB
Binary file not shown.

test/testnet/testnetdb/000068.sst

-1.61 KB
Binary file not shown.

test/testnet/testnetdb/000069.sst

-2.08 KB
Binary file not shown.

test/testnet/testnetdb/000070.sst

-1.08 KB
Binary file not shown.

test/testnet/testnetdb/000071.sst

-1.24 KB
Binary file not shown.

0 commit comments

Comments
 (0)