@Test public void setCustomType_forStandardParams_overridesStandardType() { final SourceParams params = SourceParams.createThreeDSecureParams( 99000L, "brl", "stripe://returnaddress", "card_id_123"); params.setTypeRaw("bar_tab"); assertEquals(Source.UNKNOWN, params.getType()); assertEquals("bar_tab", params.getTypeRaw()); }
@Test public void createSepaDebitParams_toParamMap_createsExpectedMap() { final SourceParams params = SourceParams.createSepaDebitParams( "Jai Testa", "ibaniban", "sepaholder@stripe.com", "44 Fourth Street", "Test City", "90210", "EI"); Map<String, Object> expectedMap = new HashMap<>(); expectedMap.put("type", Source.SEPA_DEBIT); expectedMap.put("currency", Source.EURO); final Map<String, Object> addressMap = new HashMap<>(); addressMap.put("line1", "44 Fourth Street"); addressMap.put("city", "Test City"); addressMap.put("postal_code", "90210"); addressMap.put("country", "EI"); expectedMap.put("owner", new HashMap<String, Object>() {{ put("name", "Jai Testa"); put("email", "sepaholder@stripe.com"); put("address", addressMap); }}); expectedMap.put(Source.SEPA_DEBIT, new HashMap<String, Object>() {{ put("iban", "ibaniban"); }}); assertEquals(Source.SEPA_DEBIT, params.getType()); Map<String, Object> actualMap = params.toParamMap(); JsonTestUtils.assertMapEquals(expectedMap, actualMap); }
@Test public void createMultibancoParams_hasExpectedFields() { final SourceParams params = SourceParams.createMultibancoParams( 150L, "stripe://testactivity", "multibancoholder@stripe.com"); assertEquals(Source.MULTIBANCO, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertEquals(150L, params.getAmount().longValue()); assertEquals("stripe://testactivity", params.getRedirect().get("return_url")); assertEquals("multibancoholder@stripe.com", params.getOwner().get("email")); }
@Test public void setCustomType_forEmptyParams_setsTypeToUnknown() { final SourceParams params = SourceParams.createCustomParams(); params.setTypeRaw("dogecoin"); assertEquals(Source.UNKNOWN, params.getType()); assertEquals("dogecoin", params.getTypeRaw()); }
@Test public void createEPSParams_hasExpectedFields() { final SourceParams params = SourceParams.createEPSParams( 150L, "Stripe", "stripe://return", "stripe descriptor"); assertEquals(Source.EPS, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertEquals("Stripe", params.getOwner().get("name")); assertEquals("stripe://return", params.getRedirect().get("return_url")); Map<String, Object> apiMap = params.getApiParameterMap(); assertEquals("stripe descriptor", apiMap.get("statement_descriptor")); }
@Test public void createSepaDebitParams_hasExpectedFields() { final SourceParams params = SourceParams.createSepaDebitParams( "Jai Testa", "ibaniban", "sepaholder@stripe.com", "44 Fourth Street", "Test City", "90210", "EI"); assertEquals(Source.SEPA_DEBIT, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertNotNull(params.getOwner()); assertEquals("Jai Testa", params.getOwner().get("name")); Map<String, Object> addressMap = getMapFromOwner(params, "address"); assertEquals("44 Fourth Street", addressMap.get("line1")); assertEquals("Test City", addressMap.get("city")); assertEquals("90210", addressMap.get("postal_code")); assertEquals("EI", addressMap.get("country")); Map<String, Object> apiMap = params.getApiParameterMap(); assertEquals("ibaniban", apiMap.get("iban")); }
@Test public void createSofortParams_hasExpectedFields() { final SourceParams params = SourceParams.createSofortParams( 50000L, "example://return", "UK", "a thing you bought"); assertEquals(Source.SOFORT, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertNotNull(params.getAmount()); assertEquals(50000L, params.getAmount().longValue()); assertNotNull(params.getRedirect()); assertEquals("example://return", params.getRedirect().get("return_url")); Map<String, Object> apiMap = params.getApiParameterMap(); assertEquals("UK", apiMap.get("country")); assertEquals("a thing you bought", apiMap.get("statement_descriptor")); }
assertEquals(Source.CARD, params.getType());
assertEquals(Source.CARD, params.getType());
@Test public void createThreeDSecureParams_hasExpectedFields() { final SourceParams params = SourceParams.createThreeDSecureParams( 99000L, "brl", "stripe://returnaddress", "card_id_123"); assertEquals(Source.THREE_D_SECURE, params.getType()); // Brazilian Real assertEquals("brl", params.getCurrency()); assertNotNull(params.getAmount()); assertEquals(99000L, params.getAmount().longValue()); assertNotNull(params.getRedirect()); assertEquals("stripe://returnaddress", params.getRedirect().get("return_url")); Map<String, Object> apiMap = params.getApiParameterMap(); assertNotNull(apiMap); assertEquals(1, apiMap.size()); assertEquals("card_id_123", apiMap.get("card")); }
@Test public void createIdealParams_hasExpectedFields() { final SourceParams params = SourceParams.createIdealParams( 900L, "Default Name", "stripe://anotherurl", "something you bought", "SVB"); assertEquals(Source.IDEAL, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertNotNull(params.getAmount()); assertEquals(900L, params.getAmount().longValue()); assertNotNull(params.getOwner()); assertEquals("Default Name", params.getOwner().get("name")); assertNotNull(params.getRedirect()); assertEquals("stripe://anotherurl", params.getRedirect().get("return_url")); Map<String, Object> apiMap = params.getApiParameterMap(); assertEquals("something you bought", apiMap.get("statement_descriptor")); assertEquals("SVB", apiMap.get("bank")); }
@Test public void createGiropayParams_hasExpectedFields() { final SourceParams params = SourceParams.createGiropayParams( 150L, "Stripe", "stripe://return", "stripe descriptor"); assertEquals(Source.GIROPAY, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertNotNull(params.getAmount()); assertEquals(150L, params.getAmount().longValue()); assertNotNull(params.getOwner()); assertEquals("Stripe", params.getOwner().get("name")); assertNotNull(params.getRedirect()); assertEquals("stripe://return", params.getRedirect().get("return_url")); Map<String, Object> apiMap = params.getApiParameterMap(); assertEquals("stripe descriptor", apiMap.get("statement_descriptor")); }
@Test public void createP24Params_withAllFields_hasExpectedFields() { final SourceParams params = SourceParams.createP24Params( 1000L, "eur", "Jane Tester", "jane@test.com", "stripe://testactivity"); assertEquals(Source.P24, params.getType()); assertNotNull(params.getAmount()); assertEquals(1000L, params.getAmount().longValue()); assertEquals("eur", params.getCurrency()); assertNotNull(params.getOwner()); assertEquals("Jane Tester", params.getOwner().get("name")); assertEquals("jane@test.com", params.getOwner().get("email")); assertNotNull(params.getRedirect()); assertEquals("stripe://testactivity", params.getRedirect().get("return_url")); }
@Test public void createAlipaySingleUseParams_withAllFields_hasExpectedFields() { final SourceParams params = SourceParams.createAlipaySingleUseParams( 1000L, "aud", "Jane Tester", "jane@test.com", "stripe://testactivity"); assertEquals(Source.ALIPAY, params.getType()); assertNotNull(params.getAmount()); assertEquals(1000L, params.getAmount().longValue()); assertEquals("aud", params.getCurrency()); assertNotNull(params.getOwner()); assertEquals("Jane Tester", params.getOwner().get("name")); assertEquals("jane@test.com", params.getOwner().get("email")); assertNotNull(params.getRedirect()); assertEquals("stripe://testactivity", params.getRedirect().get("return_url")); }
@Test public void createP24Params_withNullName_hasExpectedFields() { final SourceParams params = SourceParams.createP24Params( 1000L, "eur", null, "jane@test.com", "stripe://testactivity"); assertEquals(Source.P24, params.getType()); assertNotNull(params.getAmount()); assertEquals(1000L, params.getAmount().longValue()); assertEquals("eur", params.getCurrency()); assertNotNull(params.getOwner()); assertNull(params.getOwner().get("name")); assertEquals("jane@test.com", params.getOwner().get("email")); assertNotNull(params.getRedirect()); assertEquals("stripe://testactivity", params.getRedirect().get("return_url")); }
@Test public void createBancontactParams_hasExpectedFields() { final SourceParams params = SourceParams.createBancontactParams( 1000L, "Stripe", "return/url/3000", "descriptor", "en"); assertEquals(Source.BANCONTACT, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertNotNull(params.getAmount()); assertEquals(1000L, params.getAmount().longValue()); assertNotNull(params.getOwner()); assertEquals("Stripe", params.getOwner().get("name")); assertNotNull(params.getRedirect()); assertEquals("return/url/3000", params.getRedirect().get("return_url")); Map<String, Object> apiMap = params.getApiParameterMap(); assertNotNull(apiMap); assertEquals("descriptor", apiMap.get("statement_descriptor")); assertEquals("en", apiMap.get("preferred_language")); }
@Test public void createAlipaySingleUseParams_withoutOwner_hasNoOwnerFields() { final SourceParams params = SourceParams.createAlipaySingleUseParams( 555L, "eur", null, null, "stripe://testactivity2"); assertEquals(Source.ALIPAY, params.getType()); assertNotNull(params.getAmount()); assertEquals(555L, params.getAmount().longValue()); assertEquals("eur", params.getCurrency()); assertNull(params.getOwner()); assertNotNull(params.getRedirect()); assertEquals("stripe://testactivity2", params.getRedirect().get("return_url")); }
@Test public void createAlipayReusableParams_withOnlyName_hasOnlyExpectedFields() { final SourceParams params = SourceParams.createAlipayReusableParams( "cad", "Hari Seldon", null, "stripe://start"); assertEquals(Source.ALIPAY, params.getType()); assertEquals(Source.REUSABLE, params.getUsage()); assertNull(params.getAmount()); assertEquals("cad", params.getCurrency()); assertNotNull(params.getRedirect()); assertEquals("stripe://start", params.getRedirect().get("return_url")); assertNotNull(params.getOwner()); assertEquals("Hari Seldon", params.getOwner().get("name")); assertFalse(params.getOwner().containsKey("email")); }
@Test public void createGiropayParams_withNullStatementDescriptor_hasExpectedFieldsButNoApiParams() { final SourceParams params = SourceParams.createGiropayParams( 150L, "Stripe", "stripe://return", null); assertEquals(Source.GIROPAY, params.getType()); assertEquals(Source.EURO, params.getCurrency()); assertNotNull(params.getAmount()); assertEquals(150L, params.getAmount().longValue()); assertNotNull(params.getOwner()); assertEquals("Stripe", params.getOwner().get("name")); assertNotNull(params.getRedirect()); assertEquals("stripe://return", params.getRedirect().get("return_url")); assertNull(params.getApiParameterMap()); }
@Test public void createAlipayReusableParams_withAllFields_hasExpectedFields() { final SourceParams params = SourceParams.createAlipayReusableParams( "usd", "Jean Valjean", "jdog@lesmis.net", "stripe://start"); assertEquals(Source.ALIPAY, params.getType()); assertEquals(Source.REUSABLE, params.getUsage()); assertNull(params.getAmount()); assertEquals("usd", params.getCurrency()); assertNotNull(params.getRedirect()); assertEquals("stripe://start", params.getRedirect().get("return_url")); assertNotNull(params.getOwner()); assertEquals("Jean Valjean", params.getOwner().get("name")); assertEquals("jdog@lesmis.net", params.getOwner().get("email")); }