@@ -105,7 +105,7 @@ public void testConvertToBitcoinURI_segwit() {
105
105
106
106
@ Test
107
107
public void testGood_legacy () throws BitcoinURIParseException {
108
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS , MAINNET );
108
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS , MAINNET );
109
109
assertEquals (MAINNET_GOOD_ADDRESS , testObject .getAddress ().toString ());
110
110
assertNull ("Unexpected amount" , testObject .getAmount ());
111
111
assertNull ("Unexpected label" , testObject .getLabel ());
@@ -114,7 +114,7 @@ public void testGood_legacy() throws BitcoinURIParseException {
114
114
115
115
@ Test
116
116
public void testGood_uppercaseScheme () throws BitcoinURIParseException {
117
- testObject = new BitcoinURI (BITCOIN_SCHEME .toUpperCase (Locale .US ) + ":" + MAINNET_GOOD_ADDRESS , MAINNET );
117
+ testObject = BitcoinURI . of (BITCOIN_SCHEME .toUpperCase (Locale .US ) + ":" + MAINNET_GOOD_ADDRESS , MAINNET );
118
118
assertEquals (MAINNET_GOOD_ADDRESS , testObject .getAddress ().toString ());
119
119
assertNull ("Unexpected amount" , testObject .getAmount ());
120
120
assertNull ("Unexpected label" , testObject .getLabel ());
@@ -123,7 +123,7 @@ public void testGood_uppercaseScheme() throws BitcoinURIParseException {
123
123
124
124
@ Test
125
125
public void testGood_segwit () throws BitcoinURIParseException {
126
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_SEGWIT_ADDRESS , MAINNET );
126
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_SEGWIT_ADDRESS , MAINNET );
127
127
assertEquals (MAINNET_GOOD_SEGWIT_ADDRESS , testObject .getAddress ().toString ());
128
128
assertNull ("Unexpected amount" , testObject .getAmount ());
129
129
assertNull ("Unexpected label" , testObject .getLabel ());
@@ -135,7 +135,7 @@ public void testGood_segwit() throws BitcoinURIParseException {
135
135
@ Test
136
136
public void testBad_Scheme () {
137
137
try {
138
- testObject = new BitcoinURI ("blimpcoin:" + MAINNET_GOOD_ADDRESS , MAINNET );
138
+ testObject = BitcoinURI . of ("blimpcoin:" + MAINNET_GOOD_ADDRESS , MAINNET );
139
139
fail ("Expecting BitcoinURIParseException" );
140
140
} catch (BitcoinURIParseException e ) {
141
141
}
@@ -148,22 +148,22 @@ public void testBad_Scheme() {
148
148
public void testBad_BadSyntax () {
149
149
// Various illegal characters
150
150
try {
151
- testObject = new BitcoinURI (BITCOIN_SCHEME + "|" + MAINNET_GOOD_ADDRESS , MAINNET );
151
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + "|" + MAINNET_GOOD_ADDRESS , MAINNET );
152
152
fail ("Expecting BitcoinURIParseException" );
153
153
} catch (BitcoinURIParseException e ) {
154
154
assertTrue (e .getMessage ().contains ("Bad URI syntax" ));
155
155
}
156
156
157
157
try {
158
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "\\ " , MAINNET );
158
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "\\ " , MAINNET );
159
159
fail ("Expecting BitcoinURIParseException" );
160
160
} catch (BitcoinURIParseException e ) {
161
161
assertTrue (e .getMessage ().contains ("Bad URI syntax" ));
162
162
}
163
163
164
164
// Separator without field
165
165
try {
166
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" , MAINNET );
166
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" , MAINNET );
167
167
fail ("Expecting BitcoinURIParseException" );
168
168
} catch (BitcoinURIParseException e ) {
169
169
assertTrue (e .getMessage ().contains ("Bad URI syntax" ));
@@ -176,7 +176,7 @@ public void testBad_BadSyntax() {
176
176
@ Test
177
177
public void testBad_Address () {
178
178
try {
179
- testObject = new BitcoinURI (BITCOIN_SCHEME , MAINNET );
179
+ testObject = BitcoinURI . of (BITCOIN_SCHEME , MAINNET );
180
180
fail ("Expecting BitcoinURIParseException" );
181
181
} catch (BitcoinURIParseException e ) {
182
182
}
@@ -188,7 +188,7 @@ public void testBad_Address() {
188
188
@ Test
189
189
public void testBad_IncorrectAddressType () {
190
190
try {
191
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS , TESTNET );
191
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS , TESTNET );
192
192
fail ("Expecting BitcoinURIParseException" );
193
193
} catch (BitcoinURIParseException e ) {
194
194
assertTrue (e .getMessage ().contains ("Bad address" ));
@@ -204,22 +204,22 @@ public void testBad_IncorrectAddressType() {
204
204
@ Test
205
205
public void testGood_Amount () throws BitcoinURIParseException {
206
206
// Test the decimal parsing
207
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
207
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
208
208
+ "?amount=6543210.12345678" , MAINNET );
209
209
assertEquals ("654321012345678" , testObject .getAmount ().toString ());
210
210
211
211
// Test the decimal parsing
212
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
212
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
213
213
+ "?amount=.12345678" , MAINNET );
214
214
assertEquals ("12345678" , testObject .getAmount ().toString ());
215
215
216
216
// Test the integer parsing
217
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
217
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
218
218
+ "?amount=6543210" , MAINNET );
219
219
assertEquals ("654321000000000" , testObject .getAmount ().toString ());
220
220
221
221
// the maximum amount
222
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
222
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
223
223
+ "?amount=" + new BigDecimal (Long .MAX_VALUE ).movePointLeft (8 ), MAINNET );
224
224
assertEquals (Long .MAX_VALUE , testObject .getAmount ().longValue ());
225
225
}
@@ -232,7 +232,7 @@ public void testGood_Amount() throws BitcoinURIParseException {
232
232
*/
233
233
@ Test
234
234
public void testGood_Label () throws BitcoinURIParseException {
235
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
235
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
236
236
+ "?label=Hello%20World" , MAINNET );
237
237
assertEquals ("Hello World" , testObject .getLabel ());
238
238
}
@@ -247,7 +247,7 @@ public void testGood_Label() throws BitcoinURIParseException {
247
247
public void testGood_LabelWithAmpersandAndPlus () throws BitcoinURIParseException {
248
248
String testString = "Hello Earth & Mars + Venus" ;
249
249
String encodedLabel = BitcoinURI .encodeURLString (testString );
250
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
250
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
251
251
+ encodedLabel , MAINNET );
252
252
assertEquals (testString , testObject .getLabel ());
253
253
}
@@ -263,7 +263,7 @@ public void testGood_LabelWithRussian() throws BitcoinURIParseException {
263
263
// Moscow in Russian in Cyrillic
264
264
String moscowString = "\u041c \u043e \u0441 \u043a \u0432 \u0430 " ;
265
265
String encodedLabel = BitcoinURI .encodeURLString (moscowString );
266
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
266
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
267
267
+ encodedLabel , MAINNET );
268
268
assertEquals (moscowString , testObject .getLabel ());
269
269
}
@@ -276,7 +276,7 @@ public void testGood_LabelWithRussian() throws BitcoinURIParseException {
276
276
*/
277
277
@ Test
278
278
public void testGood_Message () throws BitcoinURIParseException {
279
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
279
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
280
280
+ "?message=Hello%20World" , MAINNET );
281
281
assertEquals ("Hello World" , testObject .getMessage ());
282
282
}
@@ -289,7 +289,7 @@ public void testGood_Message() throws BitcoinURIParseException {
289
289
*/
290
290
@ Test
291
291
public void testGood_Combinations () throws BitcoinURIParseException {
292
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
292
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
293
293
+ "?amount=6543210&label=Hello%20World&message=Be%20well" , MAINNET );
294
294
assertEquals (
295
295
"BitcoinURI['amount'='654321000000000','label'='Hello World','message'='Be well','address'='1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH']" ,
@@ -303,7 +303,7 @@ public void testGood_Combinations() throws BitcoinURIParseException {
303
303
public void testBad_Amount () {
304
304
// Missing
305
305
try {
306
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
306
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
307
307
+ "?amount=" , MAINNET );
308
308
fail ("Expecting BitcoinURIParseException" );
309
309
} catch (BitcoinURIParseException e ) {
@@ -312,7 +312,7 @@ public void testBad_Amount() {
312
312
313
313
// Non-decimal (BIP 21)
314
314
try {
315
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
315
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
316
316
+ "?amount=12X4" , MAINNET );
317
317
fail ("Expecting BitcoinURIParseException" );
318
318
} catch (BitcoinURIParseException e ) {
@@ -322,13 +322,13 @@ public void testBad_Amount() {
322
322
323
323
@ Test
324
324
public void testEmpty_Label () throws BitcoinURIParseException {
325
- assertNull (new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
325
+ assertNull (BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
326
326
+ "?label=" , MAINNET ).getLabel ());
327
327
}
328
328
329
329
@ Test
330
330
public void testEmpty_Message () throws BitcoinURIParseException {
331
- assertNull (new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
331
+ assertNull (BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
332
332
+ "?message=" , MAINNET ).getMessage ());
333
333
}
334
334
@@ -338,7 +338,7 @@ public void testEmpty_Message() throws BitcoinURIParseException {
338
338
@ Test
339
339
public void testBad_Duplicated () {
340
340
try {
341
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
341
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
342
342
+ "?address=aardvark" , MAINNET );
343
343
fail ("Expecting BitcoinURIParseException" );
344
344
} catch (BitcoinURIParseException e ) {
@@ -348,7 +348,7 @@ public void testBad_Duplicated() {
348
348
349
349
@ Test
350
350
public void testGood_ManyEquals () throws BitcoinURIParseException {
351
- assertEquals ("aardvark=zebra" , new BitcoinURI (BITCOIN_SCHEME + ":"
351
+ assertEquals ("aardvark=zebra" , BitcoinURI . of (BITCOIN_SCHEME + ":"
352
352
+ MAINNET_GOOD_ADDRESS + "?label=aardvark=zebra" , MAINNET ).getLabel ());
353
353
}
354
354
@@ -361,15 +361,15 @@ public void testGood_ManyEquals() throws BitcoinURIParseException {
361
361
@ Test
362
362
public void testUnknown () throws BitcoinURIParseException {
363
363
// Unknown not required field
364
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
364
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
365
365
+ "?aardvark=true" , MAINNET );
366
366
assertEquals ("BitcoinURI['aardvark'='true','address'='1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH']" , testObject .toString ());
367
367
368
368
assertEquals ("true" , testObject .getParameterByName ("aardvark" ));
369
369
370
370
// Unknown not required field (isolated)
371
371
try {
372
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
372
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
373
373
+ "?aardvark" , MAINNET );
374
374
fail ("Expecting BitcoinURIParseException" );
375
375
} catch (BitcoinURIParseException e ) {
@@ -378,7 +378,7 @@ public void testUnknown() throws BitcoinURIParseException {
378
378
379
379
// Unknown and required field
380
380
try {
381
- testObject = new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
381
+ testObject = BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
382
382
+ "?req-aardvark=true" , MAINNET );
383
383
fail ("Expecting BitcoinURIParseException" );
384
384
} catch (BitcoinURIParseException e ) {
@@ -390,34 +390,34 @@ public void testUnknown() throws BitcoinURIParseException {
390
390
public void brokenURIs () throws BitcoinURIParseException {
391
391
// Check we can parse the incorrectly formatted URIs produced by blockchain.info and its iPhone app.
392
392
String str = "bitcoin://1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH?amount=0.01000000" ;
393
- BitcoinURI uri = new BitcoinURI (str );
393
+ BitcoinURI uri = BitcoinURI . of (str );
394
394
assertEquals ("1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH" , uri .getAddress ().toString ());
395
395
assertEquals (CENT , uri .getAmount ());
396
396
}
397
397
398
398
@ Test (expected = BitcoinURIParseException .class )
399
399
public void testBad_AmountTooPrecise () throws BitcoinURIParseException {
400
- new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
400
+ BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
401
401
+ "?amount=0.123456789" , MAINNET );
402
402
}
403
403
404
404
@ Test (expected = BitcoinURIParseException .class )
405
405
public void testBad_NegativeAmount () throws BitcoinURIParseException {
406
- new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
406
+ BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
407
407
+ "?amount=-1" , MAINNET );
408
408
}
409
409
410
410
@ Test (expected = BitcoinURIParseException .class )
411
411
public void testBad_TooLargeAmount () throws BitcoinURIParseException {
412
412
BigDecimal tooLargeByOne = new BigDecimal (Long .MAX_VALUE ).add (BigDecimal .ONE );
413
- new BitcoinURI (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
413
+ BitcoinURI . of (BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
414
414
+ "?amount=" + tooLargeByOne .movePointLeft (8 ), MAINNET );
415
415
}
416
416
417
417
@ Test
418
418
public void testPaymentProtocolReq () throws Exception {
419
419
// Non-backwards compatible form ...
420
- BitcoinURI uri = new BitcoinURI ("bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin%2Ff.php%3Fh%3Db0f02e7cea67f168e25ec9b9f9d584f9" , TESTNET );
420
+ BitcoinURI uri = BitcoinURI . of ("bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin%2Ff.php%3Fh%3Db0f02e7cea67f168e25ec9b9f9d584f9" , TESTNET );
421
421
assertEquals ("https://bitcoincore.org/~gavin/f.php?h=b0f02e7cea67f168e25ec9b9f9d584f9" , uri .getPaymentRequestUrl ());
422
422
assertEquals (Collections .singletonList ("https://bitcoincore.org/~gavin/f.php?h=b0f02e7cea67f168e25ec9b9f9d584f9" ),
423
423
uri .getPaymentRequestUrls ());
@@ -426,22 +426,22 @@ public void testPaymentProtocolReq() throws Exception {
426
426
427
427
@ Test
428
428
public void testMultiplePaymentProtocolReq () throws Exception {
429
- BitcoinURI uri = new BitcoinURI ("bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin&r1=bt:112233445566" , MAINNET );
429
+ BitcoinURI uri = BitcoinURI . of ("bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin&r1=bt:112233445566" , MAINNET );
430
430
assertEquals (Arrays .asList ("bt:112233445566" , "https://bitcoincore.org/~gavin" ), uri .getPaymentRequestUrls ());
431
431
assertEquals ("https://bitcoincore.org/~gavin" , uri .getPaymentRequestUrl ());
432
432
}
433
433
434
434
@ Test
435
435
public void testNoPaymentProtocolReq () throws Exception {
436
- BitcoinURI uri = new BitcoinURI ("bitcoin:" + MAINNET_GOOD_ADDRESS , MAINNET );
436
+ BitcoinURI uri = BitcoinURI . of ("bitcoin:" + MAINNET_GOOD_ADDRESS , MAINNET );
437
437
assertNull (uri .getPaymentRequestUrl ());
438
438
assertEquals (Collections .emptyList (), uri .getPaymentRequestUrls ());
439
439
assertNotNull (uri .getAddress ());
440
440
}
441
441
442
442
@ Test
443
443
public void testUnescapedPaymentProtocolReq () throws Exception {
444
- BitcoinURI uri = new BitcoinURI ("bitcoin:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe" , TESTNET );
444
+ BitcoinURI uri = BitcoinURI . of ("bitcoin:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe" , TESTNET );
445
445
assertEquals ("https://merchant.com/pay.php?h=2a8628fc2fbe" , uri .getPaymentRequestUrl ());
446
446
assertEquals (Collections .singletonList ("https://merchant.com/pay.php?h=2a8628fc2fbe" ), uri .getPaymentRequestUrls ());
447
447
assertNull (uri .getAddress ());
0 commit comments