Skip to content

Commit fb39f9a

Browse files
authored
Merge pull request #709 from hashgraph/sr/e2e-tests-n
2 parents 9888172 + e531989 commit fb39f9a

File tree

17 files changed

+633
-193
lines changed

17 files changed

+633
-193
lines changed

tests/e2e/token/associate.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ async fn basic() -> anyhow::Result<()> {
2020
Account::create(Hbar::new(0), &client)
2121
)?;
2222

23-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
23+
let token = super::FungibleToken::create(&client, &alice, Default::default()).await?;
2424

2525
TokenAssociateTransaction::new()
2626
.account_id(bob.id)

tests/e2e/token/burn.rs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,27 @@ use crate::common::{
1212
setup_nonfree,
1313
TestEnvironment,
1414
};
15-
use crate::token::Nft;
15+
use crate::token::{
16+
CreateFungibleToken,
17+
Key,
18+
Nft,
19+
TokenKeys,
20+
};
21+
22+
const KEYS: TokenKeys = TokenKeys { supply: Some(Key::Owner), ..TokenKeys::DEFAULT };
1623

1724
#[tokio::test]
1825
async fn basic() -> anyhow::Result<()> {
1926
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
2027

2128
let account = Account::create(Hbar::new(0), &client).await?;
2229

23-
let token = super::FungibleToken::create(&client, &account, 10).await?;
30+
let token = super::FungibleToken::create(
31+
&client,
32+
&account,
33+
CreateFungibleToken { initial_supply: 10, keys: KEYS },
34+
)
35+
.await?;
2436

2537
let receipt = TokenBurnTransaction::new()
2638
.amount(10_u64)
@@ -61,7 +73,12 @@ async fn burn_zero() -> anyhow::Result<()> {
6173
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
6274

6375
let account = Account::create(Hbar::new(0), &client).await?;
64-
let token = super::FungibleToken::create(&client, &account, 0).await?;
76+
let token = super::FungibleToken::create(
77+
&client,
78+
&account,
79+
CreateFungibleToken { initial_supply: 0, keys: KEYS },
80+
)
81+
.await?;
6582

6683
let receipt = TokenBurnTransaction::new()
6784
.token_id(token.id)
@@ -84,7 +101,12 @@ async fn missing_supply_key_sig_fails() -> anyhow::Result<()> {
84101
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
85102

86103
let account = Account::create(Hbar::new(0), &client).await?;
87-
let token = super::FungibleToken::create(&client, &account, 0).await?;
104+
let token = super::FungibleToken::create(
105+
&client,
106+
&account,
107+
CreateFungibleToken { initial_supply: 0, keys: KEYS },
108+
)
109+
.await?;
88110

89111
let res = TokenBurnTransaction::new()
90112
.token_id(token.id)

tests/e2e/token/delete.rs

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,30 @@ use assert_matches::assert_matches;
22
use hedera::{
33
Hbar,
44
Status,
5-
TokenCreateTransaction,
65
TokenDeleteTransaction,
76
};
8-
use time::{
9-
Duration,
10-
OffsetDateTime,
11-
};
127

138
use crate::account::Account;
149
use crate::common::{
1510
setup_nonfree,
1611
TestEnvironment,
1712
};
13+
use crate::token::{
14+
CreateFungibleToken,
15+
TokenKeys,
16+
};
1817

1918
#[tokio::test]
20-
async fn basic() -> anyhow::Result<()> {
19+
async fn all_keys() -> anyhow::Result<()> {
2120
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
2221

2322
let account = Account::create(Hbar::new(0), &client).await?;
24-
let token = super::FungibleToken::create(&client, &account, 0).await?;
23+
let token = super::FungibleToken::create(
24+
&client,
25+
&account,
26+
CreateFungibleToken { initial_supply: 0, keys: TokenKeys::ALL_OWNER },
27+
)
28+
.await?;
2529

2630
TokenDeleteTransaction::new()
2731
.token_id(token.id)
@@ -42,23 +46,10 @@ async fn only_admin_key() -> anyhow::Result<()> {
4246

4347
let account = Account::create(Hbar::new(0), &client).await?;
4448

45-
// n.b. `FungibleToken::create` sets all keys for convenience sake.
46-
let token_id = TokenCreateTransaction::new()
47-
.name("ffff")
48-
.symbol("F")
49-
.treasury_account_id(account.id)
50-
.admin_key(account.key.public_key())
51-
.expiration_time(OffsetDateTime::now_utc() + Duration::minutes(5))
52-
.sign(account.key.clone())
53-
.execute(&client)
54-
.await?
55-
.get_receipt(&client)
56-
.await?
57-
.token_id
58-
.unwrap();
49+
let token = super::FungibleToken::create(&client, &account, Default::default()).await?;
5950

6051
TokenDeleteTransaction::new()
61-
.token_id(token_id)
52+
.token_id(token.id)
6253
.sign(account.key.clone())
6354
.execute(&client)
6455
.await?
@@ -75,7 +66,7 @@ async fn missing_admin_key_signature_fails() -> anyhow::Result<()> {
7566
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
7667

7768
let account = Account::create(Hbar::new(0), &client).await?;
78-
let token = super::FungibleToken::create(&client, &account, 0).await?;
69+
let token = super::FungibleToken::create(&client, &account, Default::default()).await?;
7970

8071
let res = TokenDeleteTransaction::new()
8172
.token_id(token.id)
@@ -95,6 +86,34 @@ async fn missing_admin_key_signature_fails() -> anyhow::Result<()> {
9586
Ok(())
9687
}
9788

89+
#[tokio::test]
90+
async fn missing_admin_key_fails() -> anyhow::Result<()> {
91+
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
92+
let account = Account::create(Hbar::new(0), &client).await?;
93+
94+
let token = super::FungibleToken::create(
95+
&client,
96+
&account,
97+
CreateFungibleToken { initial_supply: 0, keys: TokenKeys::NONE },
98+
)
99+
.await?;
100+
101+
let res = TokenDeleteTransaction::new()
102+
.token_id(token.id)
103+
.sign(token.owner.key.clone())
104+
.execute(&client)
105+
.await?
106+
.get_receipt(&client)
107+
.await;
108+
109+
assert_matches!(
110+
res,
111+
Err(hedera::Error::ReceiptStatus { status: Status::TokenIsImmutable, transaction_id: _ })
112+
);
113+
114+
Ok(())
115+
}
116+
98117
#[tokio::test]
99118
async fn missing_token_id_fails() -> anyhow::Result<()> {
100119
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };

tests/e2e/token/dissociate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ async fn basic() -> anyhow::Result<()> {
2121
Account::create(Hbar::new(1), &client)
2222
)?;
2323

24-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
24+
let token = super::FungibleToken::create(&client, &alice, Default::default()).await?;
2525

2626
TokenAssociateTransaction::new()
2727
.account_id(bob.id)
@@ -118,7 +118,7 @@ async fn unassociated_token_fails() -> anyhow::Result<()> {
118118
Account::create(Hbar::new(1), &client)
119119
)?;
120120

121-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
121+
let token = super::FungibleToken::create(&client, &alice, Default::default()).await?;
122122

123123
let res = TokenDissociateTransaction::new()
124124
.account_id(bob.id)

tests/e2e/token/fee_schedule_update.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,23 @@ use crate::common::{
1515
setup_nonfree,
1616
TestEnvironment,
1717
};
18+
use crate::token::{
19+
CreateFungibleToken,
20+
Key,
21+
TokenKeys,
22+
};
23+
24+
const TOKEN_PARAMS: CreateFungibleToken = CreateFungibleToken {
25+
initial_supply: 0,
26+
keys: TokenKeys { fee_schedule: Some(Key::Owner), ..TokenKeys::DEFAULT },
27+
};
1828

1929
#[tokio::test]
2030
async fn basic() -> anyhow::Result<()> {
2131
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
2232

2333
let account = Account::create(Hbar::new(0), &client).await?;
24-
let token = super::FungibleToken::create(&client, &account, 0).await?;
34+
let token = super::FungibleToken::create(&client, &account, TOKEN_PARAMS).await?;
2535

2636
let info = TokenInfoQuery::new().token_id(token.id).execute(&client).await?;
2737

@@ -72,7 +82,7 @@ async fn invalid_signature_fails() -> anyhow::Result<()> {
7282
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
7383

7484
let account = Account::create(Hbar::new(0), &client).await?;
75-
let token = super::FungibleToken::create(&client, &account, 0).await?;
85+
let token = super::FungibleToken::create(&client, &account, TOKEN_PARAMS).await?;
7686

7787
let info = TokenInfoQuery::new().token_id(token.id).execute(&client).await?;
7888

tests/e2e/token/freeze.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ use crate::common::{
1111
setup_nonfree,
1212
TestEnvironment,
1313
};
14+
use crate::token::{
15+
CreateFungibleToken,
16+
Key,
17+
TokenKeys,
18+
};
19+
20+
const TOKEN_PARAMS: CreateFungibleToken = CreateFungibleToken {
21+
initial_supply: 0,
22+
keys: TokenKeys { freeze: Some(Key::Owner), ..TokenKeys::DEFAULT },
23+
};
1424

1525
#[tokio::test]
1626
async fn basic() -> anyhow::Result<()> {
@@ -21,7 +31,7 @@ async fn basic() -> anyhow::Result<()> {
2131
Account::create(Hbar::new(0), &client)
2232
)?;
2333

24-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
34+
let token = super::FungibleToken::create(&client, &alice, TOKEN_PARAMS).await?;
2535

2636
TokenAssociateTransaction::new()
2737
.account_id(bob.id)
@@ -78,7 +88,7 @@ async fn missing_account_id_fails() -> anyhow::Result<()> {
7888
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
7989

8090
let account = Account::create(Hbar::new(0), &client).await?;
81-
let token = super::FungibleToken::create(&client, &account, 0).await?;
91+
let token = super::FungibleToken::create(&client, &account, TOKEN_PARAMS).await?;
8292

8393
let res = TokenFreezeTransaction::new()
8494
.token_id(token.id)
@@ -109,7 +119,7 @@ async fn non_associated_token_fails() -> anyhow::Result<()> {
109119
Account::create(Hbar::new(0), &client)
110120
)?;
111121

112-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
122+
let token = super::FungibleToken::create(&client, &alice, TOKEN_PARAMS).await?;
113123

114124
let res = TokenFreezeTransaction::new()
115125
.account_id(bob.id)

tests/e2e/token/grant_kyc.rs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ use crate::common::{
1111
setup_nonfree,
1212
TestEnvironment,
1313
};
14+
use crate::token::{
15+
CreateFungibleToken,
16+
Key,
17+
TokenKeys,
18+
};
19+
20+
const TOKEN_PARAMS: CreateFungibleToken = CreateFungibleToken {
21+
initial_supply: 0,
22+
keys: TokenKeys { kyc: Some(Key::Owner), ..TokenKeys::DEFAULT },
23+
};
1424

1525
#[tokio::test]
1626
async fn basic() -> anyhow::Result<()> {
@@ -21,7 +31,7 @@ async fn basic() -> anyhow::Result<()> {
2131
Account::create(Hbar::new(0), &client)
2232
)?;
2333

24-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
34+
let token = super::FungibleToken::create(&client, &alice, TOKEN_PARAMS).await?;
2535

2636
TokenAssociateTransaction::new()
2737
.account_id(bob.id)
@@ -78,7 +88,12 @@ async fn missing_account_id_fails() -> anyhow::Result<()> {
7888
let Some(TestEnvironment { config: _, client }) = setup_nonfree() else { return Ok(()) };
7989

8090
let account = Account::create(Hbar::new(0), &client).await?;
81-
let token = super::FungibleToken::create(&client, &account, 0).await?;
91+
let token = super::FungibleToken::create(
92+
&client,
93+
&account,
94+
CreateFungibleToken { initial_supply: 0, ..TOKEN_PARAMS },
95+
)
96+
.await?;
8297

8398
let res = TokenGrantKycTransaction::new()
8499
.token_id(token.id)
@@ -109,7 +124,7 @@ async fn non_associated_token_fails() -> anyhow::Result<()> {
109124
Account::create(Hbar::new(0), &client)
110125
)?;
111126

112-
let token = super::FungibleToken::create(&client, &alice, 0).await?;
127+
let token = super::FungibleToken::create(&client, &alice, TOKEN_PARAMS).await?;
113128

114129
let res = TokenGrantKycTransaction::new()
115130
.account_id(bob.id)

0 commit comments

Comments
 (0)