@@ -72,98 +72,156 @@ mod high_cases {
7272 }
7373 }
7474
75- mod fees {
75+ mod get_utxo {
7676 use super :: * ;
7777
7878 #[ test]
79- pub fn set_request_fees_works ( ) {
79+ pub fn get_utxo_works ( ) {
8080 test_utils:: cleanup_storage ( ) ;
8181 plugin:: init_plugin ( ) ;
8282 let wallet_handle = wallet:: create_and_open_wallet ( POOL_NAME , None ) . unwrap ( ) ;
8383 let pool_handle = pool:: create_and_open_pool_ledger ( POOL_NAME ) . unwrap ( ) ;
8484
85- let fees_req = payments :: build_set_txn_fees_req ( wallet_handle , SUBMITTER_DID , PAYMENT_METHOD_NAME , FEES ) . unwrap ( ) ;
86- let fees_resp = ledger :: submit_request ( pool_handle , fees_req . as_str ( ) ) . unwrap ( ) ;
85+ let addresses = payments_utils :: create_addresses ( vec ! [ "{}" , "{}" ] , wallet_handle , PAYMENT_METHOD_NAME ) ;
86+ let mint : Vec < ( String , i32 , Option < & str > ) > = addresses . clone ( ) . into_iter ( ) . enumerate ( ) . map ( | ( i , addr ) | ( addr , ( i+ 1 ) as i32 , None ) ) . collect ( ) ;
8787
88- let fees_stored = payments_utils:: get_request_fees ( wallet_handle, pool_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME ) ;
88+ payments_utils:: mint_tokens ( mint , wallet_handle, pool_handle, PAYMENT_METHOD_NAME , SUBMITTER_DID ) ;
8989
90- let fee_1 = fees_stored. get ( "1" ) . unwrap ( ) ;
91- assert_eq ! ( fee_1, & 1 ) ;
92- let fee_2 = fees_stored. get ( "101" ) . unwrap ( ) ;
93- assert_eq ! ( fee_2, & 2 ) ;
90+ let ( req_utxo_1, payment_method) = payments:: build_get_utxo_request ( wallet_handle, SUBMITTER_DID , addresses. get ( 0 ) . unwrap ( ) . as_str ( ) ) . unwrap ( ) ;
91+ let resp_utxo_1 = ledger:: submit_request ( pool_handle, req_utxo_1. as_str ( ) ) . unwrap ( ) ;
92+ let resp_utxo_1 = payments:: parse_get_utxo_response ( payment_method. as_str ( ) , resp_utxo_1. as_str ( ) ) . unwrap ( ) ;
93+
94+ let ( req_utxo_2, payment_method) = payments:: build_get_utxo_request ( wallet_handle, SUBMITTER_DID , addresses. get ( 1 ) . unwrap ( ) . as_str ( ) ) . unwrap ( ) ;
95+ let resp_utxo_2 = ledger:: submit_request ( pool_handle, req_utxo_2. as_str ( ) ) . unwrap ( ) ;
96+ let resp_utxo_2 = payments:: parse_get_utxo_response ( payment_method. as_str ( ) , resp_utxo_2. as_str ( ) ) . unwrap ( ) ;
97+
98+ let utxos_1: Vec < UTXOInfo > = serde_json:: from_str ( resp_utxo_1. as_str ( ) ) . unwrap ( ) ;
99+ assert_eq ! ( utxos_1. len( ) , 1 ) ;
100+ let utxo_info: & UTXOInfo = utxos_1. get ( 0 ) . unwrap ( ) ;
101+ assert_eq ! ( utxo_info. amount, 1 ) ;
102+
103+ let utxos_2: Vec < UTXOInfo > = serde_json:: from_str ( resp_utxo_2. as_str ( ) ) . unwrap ( ) ;
104+ assert_eq ! ( utxos_2. len( ) , 1 ) ;
105+ let utxo_info: & UTXOInfo = utxos_2. get ( 0 ) . unwrap ( ) ;
106+ assert_eq ! ( utxo_info. amount, 2 ) ;
94107
95108 pool:: close ( pool_handle) . unwrap ( ) ;
96109 wallet:: close_wallet ( wallet_handle) . unwrap ( ) ;
97110 test_utils:: cleanup_storage ( ) ;
98111 }
112+ }
113+
114+ mod mint {
115+ use super :: * ;
99116
100117 #[ test]
101- pub fn get_request_fees_works ( ) {
118+ pub fn mint_works ( ) {
102119 test_utils:: cleanup_storage ( ) ;
103120 plugin:: init_plugin ( ) ;
104121 let wallet_handle = wallet:: create_and_open_wallet ( POOL_NAME , None ) . unwrap ( ) ;
105122 let pool_handle = pool:: create_and_open_pool_ledger ( POOL_NAME ) . unwrap ( ) ;
106123
107- payments_utils:: set_request_fees ( wallet_handle, pool_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME , FEES ) ;
124+ let addresses = payments_utils:: create_addresses ( vec ! [ "{}" , "{}" ] , wallet_handle, PAYMENT_METHOD_NAME ) ;
125+ let mint: Vec < UTXOOutput > = addresses. clone ( ) . into_iter ( ) . enumerate ( ) . map ( |( i, payment_address) | UTXOOutput {
126+ payment_address,
127+ amount : ( ( i+1 ) * 10 ) as i32 ,
128+ extra : None
129+ } ) . collect ( ) ;
108130
109- let req = payments:: build_get_txn_fees_req ( wallet_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME ) . unwrap ( ) ;
110- let resp = ledger:: submit_request ( pool_handle, req. as_str ( ) ) . unwrap ( ) ;
111- let resp = payments:: parse_get_utxo_response ( PAYMENT_METHOD_NAME , resp. as_str ( ) ) . unwrap ( ) ;
112- let map = serde_json:: from_str :: < HashMap < String , i32 > > ( resp. as_str ( ) ) . unwrap ( ) ;
131+ let outputs = serde_json:: to_string ( & mint) . unwrap ( ) ;
113132
114- let fee_1 = map. get ( "1" ) . unwrap ( ) ;
115- assert_eq ! ( fee_1, & 1 ) ;
116- let fee_2 = map. get ( "101" ) . unwrap ( ) ;
117- assert_eq ! ( fee_2, & 2 ) ;
133+ let ( req, payment_method) = payments:: build_mint_req ( wallet_handle, SUBMITTER_DID , outputs. as_str ( ) ) . unwrap ( ) ;
134+
135+ let mint_resp = ledger:: submit_request ( pool_handle, req. as_str ( ) ) . unwrap ( ) ;
136+
137+ let utxos = payments_utils:: get_utxos_with_balance ( addresses. clone ( ) , wallet_handle, pool_handle, SUBMITTER_DID ) ;
138+
139+ let utxo_1 = utxos. get ( addresses. get ( 0 ) . unwrap ( ) ) . unwrap ( ) ;
140+ assert_eq ! ( utxo_1. len( ) , 1 ) ;
141+ let utxo_info: & UTXOInfo = utxo_1. get ( 0 ) . unwrap ( ) ;
142+ assert_eq ! ( utxo_info. amount, 10 ) ;
143+
144+ let utxo_2 = utxos. get ( addresses. get ( 1 ) . unwrap ( ) ) . unwrap ( ) ;
145+ assert_eq ! ( utxo_2. len( ) , 1 ) ;
146+ let utxo_info: & UTXOInfo = utxo_2. get ( 0 ) . unwrap ( ) ;
147+ assert_eq ! ( utxo_info. amount, 20 ) ;
118148
119149 pool:: close ( pool_handle) . unwrap ( ) ;
120150 wallet:: close_wallet ( wallet_handle) . unwrap ( ) ;
121151 test_utils:: cleanup_storage ( ) ;
122152 }
123153 }
124154
125- mod mint {
155+ mod add_request_fees {
126156 use super :: * ;
127157
128158 #[ test]
129- pub fn mint_works ( ) {
159+ pub fn add_request_fees_works ( ) {
130160 test_utils:: cleanup_storage ( ) ;
131161 plugin:: init_plugin ( ) ;
132162 let wallet_handle = wallet:: create_and_open_wallet ( POOL_NAME , None ) . unwrap ( ) ;
133163 let pool_handle = pool:: create_and_open_pool_ledger ( POOL_NAME ) . unwrap ( ) ;
134164
135- let payment_address_1 = payments:: create_payment_address ( wallet_handle, PAYMENT_METHOD_NAME , EMPTY_OBJECT ) . unwrap ( ) ;
136- let payment_address_2 = payments:: create_payment_address ( wallet_handle, PAYMENT_METHOD_NAME , EMPTY_OBJECT ) . unwrap ( ) ;
165+ let addresses = payments_utils:: create_addresses ( vec ! [ "{}" , "{}" ] , wallet_handle, PAYMENT_METHOD_NAME ) ;
137166
138- let mint = vec ! [ UTXOOutput {
139- payment_address: payment_address_1. clone( ) ,
140- amount: 10 ,
141- extra: None ,
142- } , UTXOOutput {
143- payment_address: payment_address_2. clone( ) ,
144- amount: 20 ,
145- extra: None ,
146- } ] ;
167+ let mint: Vec < ( String , i32 , Option < & str > ) > = addresses. clone ( ) . into_iter ( ) . enumerate ( ) . map ( |( i, addr) | ( addr, ( ( i+2 ) * 10 ) as i32 , None ) ) . collect ( ) ;
168+ payments_utils:: mint_tokens ( mint, wallet_handle, pool_handle, PAYMENT_METHOD_NAME , SUBMITTER_DID ) ;
147169
148- let outputs = serde_json :: to_string ( & mint ) . unwrap ( ) ;
170+ let utxos = payments_utils :: get_utxos_with_balance ( addresses , wallet_handle , pool_handle , SUBMITTER_DID ) ;
149171
150- let ( req , payment_method ) = payments :: build_mint_req ( wallet_handle, SUBMITTER_DID , outputs . as_str ( ) ) . unwrap ( ) ;
172+ payments_utils :: set_request_fees ( wallet_handle, pool_handle , SUBMITTER_DID , PAYMENT_METHOD_NAME , FEES ) ;
151173
152- assert_eq ! ( payment_method , "null" ) ;
174+ //TODO: add request fees
153175
154- let mint_resp = ledger:: submit_request ( pool_handle, req. as_str ( ) ) . unwrap ( ) ;
176+ pool:: close ( pool_handle) . unwrap ( ) ;
177+ wallet:: close_wallet ( wallet_handle) . unwrap ( ) ;
178+ test_utils:: cleanup_storage ( ) ;
179+ }
180+ }
155181
156- let utxos = payments_utils:: get_utxos_with_balance ( vec ! [ payment_address_1. as_str( ) , payment_address_2. as_str( ) ] , wallet_handle, pool_handle, SUBMITTER_DID ) ;
182+ mod fees {
183+ use super :: * ;
157184
158- let utxo_1 = utxos. get ( & payment_address_1) . unwrap ( ) ;
159- assert_eq ! ( utxo_1. len( ) , 1 ) ;
160- let utxo_info: & UTXOInfo = utxo_1. get ( 0 ) . unwrap ( ) ;
161- assert_eq ! ( utxo_info. amount, 10 ) ;
185+ #[ test]
186+ pub fn set_request_fees_works ( ) {
187+ test_utils:: cleanup_storage ( ) ;
188+ plugin:: init_plugin ( ) ;
189+ let wallet_handle = wallet:: create_and_open_wallet ( POOL_NAME , None ) . unwrap ( ) ;
190+ let pool_handle = pool:: create_and_open_pool_ledger ( POOL_NAME ) . unwrap ( ) ;
162191
163- let utxo_2 = utxos. get ( & payment_address_2) . unwrap ( ) ;
164- assert_eq ! ( utxo_2. len( ) , 1 ) ;
165- let utxo_info: & UTXOInfo = utxo_2. get ( 0 ) . unwrap ( ) ;
166- assert_eq ! ( utxo_info. amount, 20 ) ;
192+ let fees_req = payments:: build_set_txn_fees_req ( wallet_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME , FEES ) . unwrap ( ) ;
193+ let fees_resp = ledger:: submit_request ( pool_handle, fees_req. as_str ( ) ) . unwrap ( ) ;
194+
195+ let fees_stored = payments_utils:: get_request_fees ( wallet_handle, pool_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME ) ;
196+
197+ let fee_1 = fees_stored. get ( "1" ) . unwrap ( ) ;
198+ assert_eq ! ( fee_1, & 1 ) ;
199+ let fee_2 = fees_stored. get ( "101" ) . unwrap ( ) ;
200+ assert_eq ! ( fee_2, & 2 ) ;
201+
202+ pool:: close ( pool_handle) . unwrap ( ) ;
203+ wallet:: close_wallet ( wallet_handle) . unwrap ( ) ;
204+ test_utils:: cleanup_storage ( ) ;
205+ }
206+
207+ #[ test]
208+ pub fn get_request_fees_works ( ) {
209+ test_utils:: cleanup_storage ( ) ;
210+ plugin:: init_plugin ( ) ;
211+ let wallet_handle = wallet:: create_and_open_wallet ( POOL_NAME , None ) . unwrap ( ) ;
212+ let pool_handle = pool:: create_and_open_pool_ledger ( POOL_NAME ) . unwrap ( ) ;
213+
214+ payments_utils:: set_request_fees ( wallet_handle, pool_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME , FEES ) ;
215+
216+ let req = payments:: build_get_txn_fees_req ( wallet_handle, SUBMITTER_DID , PAYMENT_METHOD_NAME ) . unwrap ( ) ;
217+ let resp = ledger:: submit_request ( pool_handle, req. as_str ( ) ) . unwrap ( ) ;
218+ let resp = payments:: parse_get_utxo_response ( PAYMENT_METHOD_NAME , resp. as_str ( ) ) . unwrap ( ) ;
219+ let map = serde_json:: from_str :: < HashMap < String , i32 > > ( resp. as_str ( ) ) . unwrap ( ) ;
220+
221+ let fee_1 = map. get ( "1" ) . unwrap ( ) ;
222+ assert_eq ! ( fee_1, & 1 ) ;
223+ let fee_2 = map. get ( "101" ) . unwrap ( ) ;
224+ assert_eq ! ( fee_2, & 2 ) ;
167225
168226 pool:: close ( pool_handle) . unwrap ( ) ;
169227 wallet:: close_wallet ( wallet_handle) . unwrap ( ) ;
0 commit comments