@@ -45,6 +45,13 @@ class Vault_test : public beast::unit_test::suite
45
45
Asset asset = issuer[" IOU" ];
46
46
auto [tx, keylet] = vault.create ({.owner = owner, .asset = asset});
47
47
48
+ SUBCASE (" nothing to delete" )
49
+ {
50
+ tx = vault.del ({.owner = issuer, .id = keylet.key });
51
+ env (tx, ter (tecOBJECT_NOT_FOUND));
52
+ env.close ();
53
+ }
54
+
48
55
SUBCASE (" create" )
49
56
{
50
57
env (tx);
@@ -117,12 +124,20 @@ class Vault_test : public beast::unit_test::suite
117
124
env (tx, ter (temMALFORMED));
118
125
env.close ();
119
126
}
127
+
128
+ SUBCASE (" metadata too large" )
129
+ {
130
+ // This metadata is for the share token.
131
+ tx[sfMPTokenMetadata] = blob1025;
132
+ env (tx, ter (temMALFORMED));
133
+ env.close ();
134
+ }
120
135
}
121
136
122
137
SUBCASE (" MPT" )
123
138
{
124
139
MPTTester mptt{env, issuer, {.fund = false }};
125
- mptt.create ();
140
+ mptt.create ({. flags = tfMPTCanTransfer | tfMPTCanLock} );
126
141
Asset asset = mptt.issuanceID ();
127
142
auto [tx, keylet] = vault.create ({.owner = owner, .asset = asset});
128
143
@@ -132,15 +147,23 @@ class Vault_test : public beast::unit_test::suite
132
147
env.close ();
133
148
}
134
149
135
- SUBCASE (" metadata too large " )
150
+ SUBCASE (" global lock " )
136
151
{
137
- tx[sfMPTokenMetadata] = blob1025;
138
- env (tx, ter (temMALFORMED));
139
- env.close ();
152
+ mptt.set ({.account = issuer, .flags = tfMPTLock});
153
+ env (tx, ter (tecLOCKED));
140
154
}
155
+
156
+ }
157
+
158
+ SUBCASE (" MPT cannot transfer" )
159
+ {
160
+ MPTTester mptt{env, issuer, {.fund = false }};
161
+ mptt.create ();
162
+ Asset asset = mptt.issuanceID ();
163
+ auto [tx, keylet] = vault.create ({.owner = owner, .asset = asset});
164
+ env (tx, ter (tecLOCKED));
141
165
}
142
166
143
- // (update) => sfVaultID
144
167
// TODO: VaultSet (update) succeed
145
168
// TODO: VaultSet (update) fail: wrong owner
146
169
// TODO: VaultSet (update) fail: Data too large
@@ -149,13 +172,8 @@ class Vault_test : public beast::unit_test::suite
149
172
// TODO: VaultSet (update) fail: tfPrivate flag
150
173
// TODO: VaultSet (update) fail: tfShareNonTransferable flag
151
174
// TODO: Payment to VaultSet.PA fail
152
- // TODO: VaultDelete succeed
153
- // TODO: VaultDelete fail: missing vault
154
175
// TODO: VaultSet (update) fail: missing vault
155
176
156
- // TODO: VaultSet (create) fail: Asset is MPT but !CanTransfer
157
- // TODO: VaultSet (create) fail: Asset is MPT but Locked
158
-
159
177
BEAST_EXPECT (true );
160
178
}
161
179
0 commit comments