mirror of
https://github.com/bitcoinj/bitcoinj.git
synced 2025-03-10 17:26:28 +01:00
BitcoinURI: flip arguments of new constructor
Otherwise the deprecation cycle won't be of much use for consumers who pass `null` for `params`.
This commit is contained in:
parent
b13fe5a5d2
commit
4bdb0f85e4
2 changed files with 58 additions and 61 deletions
|
@ -108,7 +108,7 @@ public class BitcoinURI {
|
||||||
*/
|
*/
|
||||||
public BitcoinURI(String uri) throws BitcoinURIParseException {
|
public BitcoinURI(String uri) throws BitcoinURIParseException {
|
||||||
// TODO: Discover (via Service Loader mechanism) the correct Network from the URI string
|
// TODO: Discover (via Service Loader mechanism) the correct Network from the URI string
|
||||||
this(BitcoinNetwork.MAINNET, uri);
|
this(uri, BitcoinNetwork.MAINNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,22 +119,21 @@ public class BitcoinURI {
|
||||||
* @param input The raw URI data to be parsed (see class comments for accepted formats)
|
* @param input The raw URI data to be parsed (see class comments for accepted formats)
|
||||||
*
|
*
|
||||||
* @throws BitcoinURIParseException If the input fails Bitcoin URI syntax and semantic checks.
|
* @throws BitcoinURIParseException If the input fails Bitcoin URI syntax and semantic checks.
|
||||||
* @deprecated Use {@link BitcoinURI#BitcoinURI(Network, String)} or {@link BitcoinURI#BitcoinURI(String)}
|
* @deprecated Use {@link BitcoinURI#BitcoinURI(String, Network)} or {@link BitcoinURI#BitcoinURI(String)}
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public BitcoinURI(@Nullable NetworkParameters params, String input) throws BitcoinURIParseException {
|
public BitcoinURI(@Nullable NetworkParameters params, String input) throws BitcoinURIParseException {
|
||||||
this(params != null ? params.network() : BitcoinNetwork.MAINNET, input);
|
this(input, params != null ? params.network() : BitcoinNetwork.MAINNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new object by trying to parse the input as a valid Bitcoin URI.
|
* Constructs a new object by trying to parse the input as a valid Bitcoin URI.
|
||||||
*
|
*
|
||||||
* @param network The network the URI is from
|
|
||||||
* @param input The raw URI data to be parsed (see class comments for accepted formats)
|
* @param input The raw URI data to be parsed (see class comments for accepted formats)
|
||||||
*
|
* @param network The network the URI is from
|
||||||
* @throws BitcoinURIParseException If the input fails Bitcoin URI syntax and semantic checks.
|
* @throws BitcoinURIParseException If the input fails Bitcoin URI syntax and semantic checks.
|
||||||
*/
|
*/
|
||||||
public BitcoinURI(@Nonnull Network network, String input) throws BitcoinURIParseException {
|
public BitcoinURI(String input, @Nonnull Network network) throws BitcoinURIParseException {
|
||||||
Objects.requireNonNull(network);
|
Objects.requireNonNull(network);
|
||||||
Objects.requireNonNull(input);
|
Objects.requireNonNull(input);
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGood_legacy() throws BitcoinURIParseException {
|
public void testGood_legacy() throws BitcoinURIParseException {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS);
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS, MAINNET);
|
||||||
assertEquals(MAINNET_GOOD_ADDRESS, testObject.getAddress().toString());
|
assertEquals(MAINNET_GOOD_ADDRESS, testObject.getAddress().toString());
|
||||||
assertNull("Unexpected amount", testObject.getAmount());
|
assertNull("Unexpected amount", testObject.getAmount());
|
||||||
assertNull("Unexpected label", testObject.getLabel());
|
assertNull("Unexpected label", testObject.getLabel());
|
||||||
|
@ -113,7 +113,7 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGood_uppercaseScheme() throws BitcoinURIParseException {
|
public void testGood_uppercaseScheme() throws BitcoinURIParseException {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME.toUpperCase(Locale.US) + ":" + MAINNET_GOOD_ADDRESS);
|
testObject = new BitcoinURI(BITCOIN_SCHEME.toUpperCase(Locale.US) + ":" + MAINNET_GOOD_ADDRESS, MAINNET);
|
||||||
assertEquals(MAINNET_GOOD_ADDRESS, testObject.getAddress().toString());
|
assertEquals(MAINNET_GOOD_ADDRESS, testObject.getAddress().toString());
|
||||||
assertNull("Unexpected amount", testObject.getAmount());
|
assertNull("Unexpected amount", testObject.getAmount());
|
||||||
assertNull("Unexpected label", testObject.getLabel());
|
assertNull("Unexpected label", testObject.getLabel());
|
||||||
|
@ -122,7 +122,7 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGood_segwit() throws BitcoinURIParseException {
|
public void testGood_segwit() throws BitcoinURIParseException {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_SEGWIT_ADDRESS);
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_SEGWIT_ADDRESS, MAINNET);
|
||||||
assertEquals(MAINNET_GOOD_SEGWIT_ADDRESS, testObject.getAddress().toString());
|
assertEquals(MAINNET_GOOD_SEGWIT_ADDRESS, testObject.getAddress().toString());
|
||||||
assertNull("Unexpected amount", testObject.getAmount());
|
assertNull("Unexpected amount", testObject.getAmount());
|
||||||
assertNull("Unexpected label", testObject.getLabel());
|
assertNull("Unexpected label", testObject.getLabel());
|
||||||
|
@ -134,7 +134,7 @@ public class BitcoinURITest {
|
||||||
@Test
|
@Test
|
||||||
public void testBad_Scheme() {
|
public void testBad_Scheme() {
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, "blimpcoin:" + MAINNET_GOOD_ADDRESS);
|
testObject = new BitcoinURI("blimpcoin:" + MAINNET_GOOD_ADDRESS, MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
}
|
}
|
||||||
|
@ -147,14 +147,14 @@ public class BitcoinURITest {
|
||||||
public void testBad_BadSyntax() {
|
public void testBad_BadSyntax() {
|
||||||
// Various illegal characters
|
// Various illegal characters
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + "|" + MAINNET_GOOD_ADDRESS);
|
testObject = new BitcoinURI(BITCOIN_SCHEME + "|" + MAINNET_GOOD_ADDRESS, MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("Bad URI syntax"));
|
assertTrue(e.getMessage().contains("Bad URI syntax"));
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "\\");
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "\\", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("Bad URI syntax"));
|
assertTrue(e.getMessage().contains("Bad URI syntax"));
|
||||||
|
@ -162,7 +162,7 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
// Separator without field
|
// Separator without field
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":");
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("Bad URI syntax"));
|
assertTrue(e.getMessage().contains("Bad URI syntax"));
|
||||||
|
@ -175,7 +175,7 @@ public class BitcoinURITest {
|
||||||
@Test
|
@Test
|
||||||
public void testBad_Address() {
|
public void testBad_Address() {
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME);
|
testObject = new BitcoinURI(BITCOIN_SCHEME, MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,7 @@ public class BitcoinURITest {
|
||||||
@Test
|
@Test
|
||||||
public void testBad_IncorrectAddressType() {
|
public void testBad_IncorrectAddressType() {
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(TESTNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS);
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS, TESTNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("Bad address"));
|
assertTrue(e.getMessage().contains("Bad address"));
|
||||||
|
@ -203,18 +203,18 @@ public class BitcoinURITest {
|
||||||
@Test
|
@Test
|
||||||
public void testGood_Amount() throws BitcoinURIParseException {
|
public void testGood_Amount() throws BitcoinURIParseException {
|
||||||
// Test the decimal parsing
|
// Test the decimal parsing
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=6543210.12345678");
|
+ "?amount=6543210.12345678", MAINNET);
|
||||||
assertEquals("654321012345678", testObject.getAmount().toString());
|
assertEquals("654321012345678", testObject.getAmount().toString());
|
||||||
|
|
||||||
// Test the decimal parsing
|
// Test the decimal parsing
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=.12345678");
|
+ "?amount=.12345678", MAINNET);
|
||||||
assertEquals("12345678", testObject.getAmount().toString());
|
assertEquals("12345678", testObject.getAmount().toString());
|
||||||
|
|
||||||
// Test the integer parsing
|
// Test the integer parsing
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=6543210");
|
+ "?amount=6543210", MAINNET);
|
||||||
assertEquals("654321000000000", testObject.getAmount().toString());
|
assertEquals("654321000000000", testObject.getAmount().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,8 +226,8 @@ public class BitcoinURITest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGood_Label() throws BitcoinURIParseException {
|
public void testGood_Label() throws BitcoinURIParseException {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?label=Hello%20World");
|
+ "?label=Hello%20World", MAINNET);
|
||||||
assertEquals("Hello World", testObject.getLabel());
|
assertEquals("Hello World", testObject.getLabel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,8 +241,8 @@ public class BitcoinURITest {
|
||||||
public void testGood_LabelWithAmpersandAndPlus() throws BitcoinURIParseException {
|
public void testGood_LabelWithAmpersandAndPlus() throws BitcoinURIParseException {
|
||||||
String testString = "Hello Earth & Mars + Venus";
|
String testString = "Hello Earth & Mars + Venus";
|
||||||
String encodedLabel = BitcoinURI.encodeURLString(testString);
|
String encodedLabel = BitcoinURI.encodeURLString(testString);
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
|
||||||
+ encodedLabel);
|
+ encodedLabel, MAINNET);
|
||||||
assertEquals(testString, testObject.getLabel());
|
assertEquals(testString, testObject.getLabel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -257,8 +257,8 @@ public class BitcoinURITest {
|
||||||
// Moscow in Russian in Cyrillic
|
// Moscow in Russian in Cyrillic
|
||||||
String moscowString = "\u041c\u043e\u0441\u043a\u0432\u0430";
|
String moscowString = "\u041c\u043e\u0441\u043a\u0432\u0430";
|
||||||
String encodedLabel = BitcoinURI.encodeURLString(moscowString);
|
String encodedLabel = BitcoinURI.encodeURLString(moscowString);
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS + "?label="
|
||||||
+ encodedLabel);
|
+ encodedLabel, MAINNET);
|
||||||
assertEquals(moscowString, testObject.getLabel());
|
assertEquals(moscowString, testObject.getLabel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,8 +270,8 @@ public class BitcoinURITest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGood_Message() throws BitcoinURIParseException {
|
public void testGood_Message() throws BitcoinURIParseException {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?message=Hello%20World");
|
+ "?message=Hello%20World", MAINNET);
|
||||||
assertEquals("Hello World", testObject.getMessage());
|
assertEquals("Hello World", testObject.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,8 +283,8 @@ public class BitcoinURITest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGood_Combinations() throws BitcoinURIParseException {
|
public void testGood_Combinations() throws BitcoinURIParseException {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=6543210&label=Hello%20World&message=Be%20well");
|
+ "?amount=6543210&label=Hello%20World&message=Be%20well", MAINNET);
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"BitcoinURI['amount'='654321000000000','label'='Hello World','message'='Be well','address'='1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH']",
|
"BitcoinURI['amount'='654321000000000','label'='Hello World','message'='Be well','address'='1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH']",
|
||||||
testObject.toString());
|
testObject.toString());
|
||||||
|
@ -297,8 +297,8 @@ public class BitcoinURITest {
|
||||||
public void testBad_Amount() {
|
public void testBad_Amount() {
|
||||||
// Missing
|
// Missing
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=");
|
+ "?amount=", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("amount"));
|
assertTrue(e.getMessage().contains("amount"));
|
||||||
|
@ -306,8 +306,8 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
// Non-decimal (BIP 21)
|
// Non-decimal (BIP 21)
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=12X4");
|
+ "?amount=12X4", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("amount"));
|
assertTrue(e.getMessage().contains("amount"));
|
||||||
|
@ -316,14 +316,14 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEmpty_Label() throws BitcoinURIParseException {
|
public void testEmpty_Label() throws BitcoinURIParseException {
|
||||||
assertNull(new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
assertNull(new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?label=").getLabel());
|
+ "?label=", MAINNET).getLabel());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEmpty_Message() throws BitcoinURIParseException {
|
public void testEmpty_Message() throws BitcoinURIParseException {
|
||||||
assertNull(new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
assertNull(new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?message=").getMessage());
|
+ "?message=", MAINNET).getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -332,8 +332,8 @@ public class BitcoinURITest {
|
||||||
@Test
|
@Test
|
||||||
public void testBad_Duplicated() {
|
public void testBad_Duplicated() {
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?address=aardvark");
|
+ "?address=aardvark", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("address"));
|
assertTrue(e.getMessage().contains("address"));
|
||||||
|
@ -342,8 +342,8 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGood_ManyEquals() throws BitcoinURIParseException {
|
public void testGood_ManyEquals() throws BitcoinURIParseException {
|
||||||
assertEquals("aardvark=zebra", new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":"
|
assertEquals("aardvark=zebra", new BitcoinURI(BITCOIN_SCHEME + ":"
|
||||||
+ MAINNET_GOOD_ADDRESS + "?label=aardvark=zebra").getLabel());
|
+ MAINNET_GOOD_ADDRESS + "?label=aardvark=zebra", MAINNET).getLabel());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -355,16 +355,16 @@ public class BitcoinURITest {
|
||||||
@Test
|
@Test
|
||||||
public void testUnknown() throws BitcoinURIParseException {
|
public void testUnknown() throws BitcoinURIParseException {
|
||||||
// Unknown not required field
|
// Unknown not required field
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?aardvark=true");
|
+ "?aardvark=true", MAINNET);
|
||||||
assertEquals("BitcoinURI['aardvark'='true','address'='1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH']", testObject.toString());
|
assertEquals("BitcoinURI['aardvark'='true','address'='1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH']", testObject.toString());
|
||||||
|
|
||||||
assertEquals("true", testObject.getParameterByName("aardvark"));
|
assertEquals("true", testObject.getParameterByName("aardvark"));
|
||||||
|
|
||||||
// Unknown not required field (isolated)
|
// Unknown not required field (isolated)
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?aardvark");
|
+ "?aardvark", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("no separator"));
|
assertTrue(e.getMessage().contains("no separator"));
|
||||||
|
@ -372,8 +372,8 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
// Unknown and required field
|
// Unknown and required field
|
||||||
try {
|
try {
|
||||||
testObject = new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
testObject = new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?req-aardvark=true");
|
+ "?req-aardvark=true", MAINNET);
|
||||||
fail("Expecting BitcoinURIParseException");
|
fail("Expecting BitcoinURIParseException");
|
||||||
} catch (BitcoinURIParseException e) {
|
} catch (BitcoinURIParseException e) {
|
||||||
assertTrue(e.getMessage().contains("req-aardvark"));
|
assertTrue(e.getMessage().contains("req-aardvark"));
|
||||||
|
@ -391,26 +391,26 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test(expected = BitcoinURIParseException.class)
|
@Test(expected = BitcoinURIParseException.class)
|
||||||
public void testBad_AmountTooPrecise() throws BitcoinURIParseException {
|
public void testBad_AmountTooPrecise() throws BitcoinURIParseException {
|
||||||
new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=0.123456789");
|
+ "?amount=0.123456789", MAINNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = BitcoinURIParseException.class)
|
@Test(expected = BitcoinURIParseException.class)
|
||||||
public void testBad_NegativeAmount() throws BitcoinURIParseException {
|
public void testBad_NegativeAmount() throws BitcoinURIParseException {
|
||||||
new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=-1");
|
+ "?amount=-1", MAINNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = BitcoinURIParseException.class)
|
@Test(expected = BitcoinURIParseException.class)
|
||||||
public void testBad_TooLargeAmount() throws BitcoinURIParseException {
|
public void testBad_TooLargeAmount() throws BitcoinURIParseException {
|
||||||
new BitcoinURI(MAINNET, BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
new BitcoinURI(BITCOIN_SCHEME + ":" + MAINNET_GOOD_ADDRESS
|
||||||
+ "?amount=100000000");
|
+ "?amount=100000000", MAINNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPaymentProtocolReq() throws Exception {
|
public void testPaymentProtocolReq() throws Exception {
|
||||||
// Non-backwards compatible form ...
|
// Non-backwards compatible form ...
|
||||||
BitcoinURI uri = new BitcoinURI(TESTNET, "bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin%2Ff.php%3Fh%3Db0f02e7cea67f168e25ec9b9f9d584f9");
|
BitcoinURI uri = new BitcoinURI("bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin%2Ff.php%3Fh%3Db0f02e7cea67f168e25ec9b9f9d584f9", TESTNET);
|
||||||
assertEquals("https://bitcoincore.org/~gavin/f.php?h=b0f02e7cea67f168e25ec9b9f9d584f9", uri.getPaymentRequestUrl());
|
assertEquals("https://bitcoincore.org/~gavin/f.php?h=b0f02e7cea67f168e25ec9b9f9d584f9", uri.getPaymentRequestUrl());
|
||||||
assertEquals(Collections.singletonList("https://bitcoincore.org/~gavin/f.php?h=b0f02e7cea67f168e25ec9b9f9d584f9"),
|
assertEquals(Collections.singletonList("https://bitcoincore.org/~gavin/f.php?h=b0f02e7cea67f168e25ec9b9f9d584f9"),
|
||||||
uri.getPaymentRequestUrls());
|
uri.getPaymentRequestUrls());
|
||||||
|
@ -419,15 +419,14 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testMultiplePaymentProtocolReq() throws Exception {
|
public void testMultiplePaymentProtocolReq() throws Exception {
|
||||||
BitcoinURI uri = new BitcoinURI(MAINNET,
|
BitcoinURI uri = new BitcoinURI("bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin&r1=bt:112233445566", MAINNET);
|
||||||
"bitcoin:?r=https%3A%2F%2Fbitcoincore.org%2F%7Egavin&r1=bt:112233445566");
|
|
||||||
assertEquals(Arrays.asList("bt:112233445566", "https://bitcoincore.org/~gavin"), uri.getPaymentRequestUrls());
|
assertEquals(Arrays.asList("bt:112233445566", "https://bitcoincore.org/~gavin"), uri.getPaymentRequestUrls());
|
||||||
assertEquals("https://bitcoincore.org/~gavin", uri.getPaymentRequestUrl());
|
assertEquals("https://bitcoincore.org/~gavin", uri.getPaymentRequestUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNoPaymentProtocolReq() throws Exception {
|
public void testNoPaymentProtocolReq() throws Exception {
|
||||||
BitcoinURI uri = new BitcoinURI(MAINNET, "bitcoin:" + MAINNET_GOOD_ADDRESS);
|
BitcoinURI uri = new BitcoinURI("bitcoin:" + MAINNET_GOOD_ADDRESS, MAINNET);
|
||||||
assertNull(uri.getPaymentRequestUrl());
|
assertNull(uri.getPaymentRequestUrl());
|
||||||
assertEquals(Collections.emptyList(), uri.getPaymentRequestUrls());
|
assertEquals(Collections.emptyList(), uri.getPaymentRequestUrls());
|
||||||
assertNotNull(uri.getAddress());
|
assertNotNull(uri.getAddress());
|
||||||
|
@ -435,8 +434,7 @@ public class BitcoinURITest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUnescapedPaymentProtocolReq() throws Exception {
|
public void testUnescapedPaymentProtocolReq() throws Exception {
|
||||||
BitcoinURI uri = new BitcoinURI(TESTNET,
|
BitcoinURI uri = new BitcoinURI("bitcoin:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe", TESTNET);
|
||||||
"bitcoin:?r=https://merchant.com/pay.php?h%3D2a8628fc2fbe");
|
|
||||||
assertEquals("https://merchant.com/pay.php?h=2a8628fc2fbe", uri.getPaymentRequestUrl());
|
assertEquals("https://merchant.com/pay.php?h=2a8628fc2fbe", uri.getPaymentRequestUrl());
|
||||||
assertEquals(Collections.singletonList("https://merchant.com/pay.php?h=2a8628fc2fbe"), uri.getPaymentRequestUrls());
|
assertEquals(Collections.singletonList("https://merchant.com/pay.php?h=2a8628fc2fbe"), uri.getPaymentRequestUrls());
|
||||||
assertNull(uri.getAddress());
|
assertNull(uri.getAddress());
|
||||||
|
|
Loading…
Add table
Reference in a new issue