001// SECTION-START[License Header] 002// <editor-fold defaultstate="collapsed" desc=" Generated License "> 003/* 004 * jDTAUS ⁑ ISO-13616 005 * Copyright (C) Christian Schulte, 2013-222 006 * 007 * Permission to use, copy, modify, and/or distribute this software for any 008 * purpose with or without fee is hereby granted, provided that the above 009 * copyright notice and this permission notice appear in all copies. 010 * 011 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 012 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 013 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 014 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 015 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 016 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 017 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 018 * 019 * $JDTAUS: IbanTest.java 8902 2015-06-20 18:30:32Z schulte $ 020 * 021 */ 022// </editor-fold> 023// SECTION-END 024package org.jdtaus.iso13616.test; 025 026import java.io.ByteArrayOutputStream; 027import java.io.IOException; 028import java.io.ObjectInputStream; 029import java.io.ObjectOutputStream; 030import java.math.BigInteger; 031import java.text.ParsePosition; 032import java.util.Arrays; 033import java.util.Collection; 034import java.util.HashSet; 035import java.util.IllegalFormatFlagsException; 036import java.util.Iterator; 037import java.util.LinkedList; 038import java.util.Map; 039import java.util.Properties; 040import java.util.Set; 041import org.jdtaus.iso13616.IBAN; 042import org.jdtaus.iso13616.IbanCheckDigitsException; 043import org.jdtaus.iso13616.IbanFormat; 044import org.jdtaus.iso13616.IbanSyntaxException; 045import org.junit.Test; 046import static org.junit.Assert.assertEquals; 047import static org.junit.Assert.assertFalse; 048import static org.junit.Assert.assertNotNull; 049import static org.junit.Assert.assertNull; 050import static org.junit.Assert.assertTrue; 051import static org.junit.Assert.fail; 052 053// SECTION-START[Documentation] 054// <editor-fold defaultstate="collapsed" desc=" Generated Documentation "> 055/** 056 * Testcases for classes {@code org.jdtaus.iban.IBAN}, {@code org.jdtaus.iban.IbanSyntaxException} and {@code org.jdtaus.iban.IbanCheckDigitsException}. 057 * 058 * <dl> 059 * <dt><b>Identifier:</b></dt><dd>jDTAUS ⁑ ISO-13616 ⁑ Tests ⁑ IBAN Test</dd> 060 * <dt><b>Name:</b></dt><dd>jDTAUS ⁑ ISO-13616 ⁑ Tests ⁑ IBAN Test</dd> 061 * <dt><b>Abstract:</b></dt><dd>No</dd> 062 * <dt><b>Final:</b></dt><dd>Yes</dd> 063 * <dt><b>Stateless:</b></dt><dd>Yes</dd> 064 * </dl> 065 * 066 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 067 * @version 1.1 068 */ 069// </editor-fold> 070// SECTION-END 071// SECTION-START[Annotations] 072// <editor-fold defaultstate="collapsed" desc=" Generated Annotations "> 073@javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.9", comments = "See http://www.jomc.org/jomc/1.9/jomc-tools-1.9" ) 074// </editor-fold> 075// SECTION-END 076public class IbanTest 077{ 078 // SECTION-START[IbanTest] 079 080 /** 081 * Prefix for property names holding valid values formatted using electronic format. 082 */ 083 private static final String VALID_ELECTRONIC_FORMAT_PREFIX = "valid.electronicformat"; 084 085 /** 086 * Prefix for property names holding valid values formatted using letter format. 087 */ 088 private static final String VALID_LETTER_FORMAT_PREFIX = "valid.letterformat"; 089 090 /** 091 * Prefix for property names holding invalid values. 092 */ 093 private static final String INVALID_PREFIX = "invalid."; 094 095 /** 096 * Set of IBAN country codes. 097 */ 098 private static final Set<String> IBAN_COUNTRY_CODES = new HashSet<String>( 128 ); 099 100 /** 101 * Set of EPC SEPA country codes. 102 */ 103 private static final Set<String> SEPA_COUNTRY_CODES = new HashSet<String>( 128 ); 104 105 static 106 { 107 SEPA_COUNTRY_CODES.add( "AX" ); // Åland Islands - FI 108 SEPA_COUNTRY_CODES.add( "AT" ); // Austria 109 SEPA_COUNTRY_CODES.add( "PT" ); // Azores & Portugal 110 SEPA_COUNTRY_CODES.add( "BE" ); // Belgium 111 SEPA_COUNTRY_CODES.add( "BG" ); // Bulgaria 112// SEPA_COUNTRY_CODES.add( "IC" ); // Canary Islands - ES - Exceptional reservation 113 SEPA_COUNTRY_CODES.add( "HR" ); // Croatia 114 SEPA_COUNTRY_CODES.add( "CY" ); // Cyprus 115 SEPA_COUNTRY_CODES.add( "CZ" ); // Czech Republic 116 SEPA_COUNTRY_CODES.add( "DK" ); // Denmark 117 SEPA_COUNTRY_CODES.add( "EE" ); // Estonia 118 SEPA_COUNTRY_CODES.add( "FI" ); // Finland 119 SEPA_COUNTRY_CODES.add( "FR" ); // France 120 SEPA_COUNTRY_CODES.add( "GF" ); // French Guiana -FR 121 SEPA_COUNTRY_CODES.add( "DE" ); // Germany 122 SEPA_COUNTRY_CODES.add( "GI" ); // Gibraltar 123 SEPA_COUNTRY_CODES.add( "GR" ); // Greece 124 SEPA_COUNTRY_CODES.add( "GP" ); // Guadeloupe - FR 125 SEPA_COUNTRY_CODES.add( "HU" ); // Hungary 126 SEPA_COUNTRY_CODES.add( "IS" ); // Iceland 127 SEPA_COUNTRY_CODES.add( "IE" ); // Ireland 128 SEPA_COUNTRY_CODES.add( "IT" ); // Italy 129 SEPA_COUNTRY_CODES.add( "LV" ); // Latvia 130 SEPA_COUNTRY_CODES.add( "LI" ); // Liechtenstein 131 SEPA_COUNTRY_CODES.add( "LT" ); // Lithuania 132 SEPA_COUNTRY_CODES.add( "LU" ); // Luxembourg 133 SEPA_COUNTRY_CODES.add( "MT" ); // Malta 134 SEPA_COUNTRY_CODES.add( "MQ" ); // Martinique - FR 135 SEPA_COUNTRY_CODES.add( "YT" ); // Mayotte - FR 136 SEPA_COUNTRY_CODES.add( "MC" ); // Monaco 137 SEPA_COUNTRY_CODES.add( "NL" ); // Netherlands 138 SEPA_COUNTRY_CODES.add( "NO" ); // Norway 139 SEPA_COUNTRY_CODES.add( "PL" ); // Poland 140 SEPA_COUNTRY_CODES.add( "PT" ); // Madeira & Portugal 141 SEPA_COUNTRY_CODES.add( "RE" ); // Réunion - FR 142 SEPA_COUNTRY_CODES.add( "RO" ); // Romania 143 SEPA_COUNTRY_CODES.add( "BL" ); // Saint Barthélemy - FR 144 SEPA_COUNTRY_CODES.add( "MF" ); // Saint Martin (French part) - FR 145 SEPA_COUNTRY_CODES.add( "PM" ); // Saint Pierre and Miquelon- FR 146 SEPA_COUNTRY_CODES.add( "SK" ); // Slovakia 147 SEPA_COUNTRY_CODES.add( "SI" ); // Slovenia 148 SEPA_COUNTRY_CODES.add( "ES" ); // Canary Islands & Spain 149 SEPA_COUNTRY_CODES.add( "SE" ); // Sweden 150 SEPA_COUNTRY_CODES.add( "CH" ); // Switzerland 151 SEPA_COUNTRY_CODES.add( "GB" ); // United Kingdom 152 SEPA_COUNTRY_CODES.add( "SM" ); // San Marino 153 154 IBAN_COUNTRY_CODES.add( "AL" ); 155 IBAN_COUNTRY_CODES.add( "AD" ); 156 IBAN_COUNTRY_CODES.add( "AT" ); 157 IBAN_COUNTRY_CODES.add( "AZ" ); 158 IBAN_COUNTRY_CODES.add( "BH" ); 159 IBAN_COUNTRY_CODES.add( "BE" ); 160 IBAN_COUNTRY_CODES.add( "BA" ); 161 IBAN_COUNTRY_CODES.add( "BR" ); 162 IBAN_COUNTRY_CODES.add( "BG" ); 163 IBAN_COUNTRY_CODES.add( "CR" ); 164 IBAN_COUNTRY_CODES.add( "HR" ); 165 IBAN_COUNTRY_CODES.add( "CY" ); 166 IBAN_COUNTRY_CODES.add( "CZ" ); 167 IBAN_COUNTRY_CODES.add( "DK" ); 168 IBAN_COUNTRY_CODES.add( "FO" ); 169 IBAN_COUNTRY_CODES.add( "GL" ); 170 IBAN_COUNTRY_CODES.add( "DO" ); 171 IBAN_COUNTRY_CODES.add( "EE" ); 172 IBAN_COUNTRY_CODES.add( "FI" ); 173 IBAN_COUNTRY_CODES.add( "AX" ); 174 IBAN_COUNTRY_CODES.add( "FR" ); 175 IBAN_COUNTRY_CODES.add( "GF" ); 176 IBAN_COUNTRY_CODES.add( "GP" ); 177 IBAN_COUNTRY_CODES.add( "MQ" ); 178 IBAN_COUNTRY_CODES.add( "RE" ); 179 IBAN_COUNTRY_CODES.add( "PF" ); 180 IBAN_COUNTRY_CODES.add( "TF" ); 181 IBAN_COUNTRY_CODES.add( "YT" ); 182 IBAN_COUNTRY_CODES.add( "NC" ); 183 IBAN_COUNTRY_CODES.add( "BL" ); 184 IBAN_COUNTRY_CODES.add( "MF" ); 185 IBAN_COUNTRY_CODES.add( "PM" ); 186 IBAN_COUNTRY_CODES.add( "WF" ); 187 IBAN_COUNTRY_CODES.add( "GE" ); 188 IBAN_COUNTRY_CODES.add( "DE" ); 189 IBAN_COUNTRY_CODES.add( "GI" ); 190 IBAN_COUNTRY_CODES.add( "GR" ); 191 IBAN_COUNTRY_CODES.add( "GT" ); 192 IBAN_COUNTRY_CODES.add( "HU" ); 193 IBAN_COUNTRY_CODES.add( "IS" ); 194 IBAN_COUNTRY_CODES.add( "IE" ); 195 IBAN_COUNTRY_CODES.add( "IL" ); 196 IBAN_COUNTRY_CODES.add( "IT" ); 197 IBAN_COUNTRY_CODES.add( "JO" ); 198 IBAN_COUNTRY_CODES.add( "KZ" ); 199 IBAN_COUNTRY_CODES.add( "KW" ); 200 IBAN_COUNTRY_CODES.add( "LV" ); 201 IBAN_COUNTRY_CODES.add( "LB" ); 202 IBAN_COUNTRY_CODES.add( "LC" ); 203 IBAN_COUNTRY_CODES.add( "LI" ); 204 IBAN_COUNTRY_CODES.add( "LT" ); 205 IBAN_COUNTRY_CODES.add( "LU" ); 206 IBAN_COUNTRY_CODES.add( "MK" ); 207 IBAN_COUNTRY_CODES.add( "MT" ); 208 IBAN_COUNTRY_CODES.add( "MR" ); 209 IBAN_COUNTRY_CODES.add( "MU" ); 210 IBAN_COUNTRY_CODES.add( "MD" ); 211 IBAN_COUNTRY_CODES.add( "MC" ); 212 IBAN_COUNTRY_CODES.add( "ME" ); 213 IBAN_COUNTRY_CODES.add( "NL" ); 214 IBAN_COUNTRY_CODES.add( "NO" ); 215 IBAN_COUNTRY_CODES.add( "PK" ); 216 IBAN_COUNTRY_CODES.add( "PS" ); 217 IBAN_COUNTRY_CODES.add( "PL" ); 218 IBAN_COUNTRY_CODES.add( "PT" ); 219 IBAN_COUNTRY_CODES.add( "RO" ); 220 IBAN_COUNTRY_CODES.add( "QA" ); 221 IBAN_COUNTRY_CODES.add( "SM" ); 222 IBAN_COUNTRY_CODES.add( "SA" ); 223 IBAN_COUNTRY_CODES.add( "RS" ); 224 IBAN_COUNTRY_CODES.add( "SK" ); 225 IBAN_COUNTRY_CODES.add( "SI" ); 226 IBAN_COUNTRY_CODES.add( "ES" ); 227 IBAN_COUNTRY_CODES.add( "SE" ); 228 IBAN_COUNTRY_CODES.add( "CH" ); 229 IBAN_COUNTRY_CODES.add( "TN" ); 230 IBAN_COUNTRY_CODES.add( "TR" ); 231 IBAN_COUNTRY_CODES.add( "AE" ); 232 IBAN_COUNTRY_CODES.add( "GB" ); 233 IBAN_COUNTRY_CODES.add( "JE" ); 234 IBAN_COUNTRY_CODES.add( "GG" ); 235 IBAN_COUNTRY_CODES.add( "IM" ); 236 IBAN_COUNTRY_CODES.add( "VG" ); 237 IBAN_COUNTRY_CODES.add( "TL" ); 238 IBAN_COUNTRY_CODES.add( "XK" ); 239 } 240 241 /** 242 * Gets an array of valid {@code IBAN} values formatted using electronic format. 243 * 244 * @return An array of valid {@code IBAN} values formatted using electronic format. 245 * 246 * @throws IOException if reading property resources fails. 247 */ 248 private String[] getValidValuesElectronicFormat() throws IOException 249 { 250 final Map<Object, Object> properties = this.getProperties(); 251 final Collection<String> col = new LinkedList<String>(); 252 253 for ( final Iterator<Object> it = properties.keySet().iterator(); it.hasNext(); ) 254 { 255 final String key = it.next().toString(); 256 if ( key.startsWith( VALID_ELECTRONIC_FORMAT_PREFIX ) ) 257 { 258 col.add( properties.get( key ).toString() ); 259 } 260 } 261 262 return col.toArray( new String[ col.size() ] ); 263 } 264 265 /** 266 * Gets an array of valid {@code IBAN} values formatted using print format. 267 * 268 * @return An array of valid {@code IBAN} values formatted using print format. 269 * 270 * @throws IOException if reading property resources fails. 271 */ 272 private String[] getValidValuesPrintFormat() throws IOException 273 { 274 final Map<Object, Object> properties = this.getProperties(); 275 final Collection<String> col = new LinkedList<String>(); 276 277 for ( final Iterator<Object> it = properties.keySet().iterator(); it.hasNext(); ) 278 { 279 final String key = it.next().toString(); 280 if ( key.startsWith( VALID_LETTER_FORMAT_PREFIX ) ) 281 { 282 col.add( properties.get( key ).toString() ); 283 } 284 } 285 286 return col.toArray( new String[ col.size() ] ); 287 } 288 289 /** 290 * Gets an array of invalid {@code IBAN} values. 291 * 292 * @return An array of invalid {@code IBAN} values. 293 * 294 * @throws IOException if reading property resources fails. 295 */ 296 private String[] getInvalidValues() throws IOException 297 { 298 final Map<Object, Object> properties = this.getProperties(); 299 final Collection<String> col = new LinkedList<String>(); 300 301 for ( final Iterator<Object> it = properties.keySet().iterator(); it.hasNext(); ) 302 { 303 final String key = it.next().toString(); 304 if ( key.startsWith( INVALID_PREFIX ) ) 305 { 306 col.add( properties.get( key ).toString() ); 307 } 308 } 309 310 return col.toArray( new String[ col.size() ] ); 311 } 312 313 private Map<Object, Object> getProperties() throws IOException 314 { 315 final Properties ret = new Properties(); 316 ret.load( this.getClass().getResourceAsStream( "IbanTest.properties" ) ); 317 return ret; 318 } 319 320 @Test public void CountryCodes() throws Exception 321 { 322 final String[] countryCodes = IBAN.getCountryCodes(); 323 assertNotNull( countryCodes ); 324 assertTrue( IBAN_COUNTRY_CODES.containsAll( Arrays.asList( countryCodes ) ) ); 325 assertTrue( Arrays.asList( countryCodes ).containsAll( IBAN_COUNTRY_CODES ) ); 326 327// final List<String> validCountries = Arrays.asList( Locale.getISOCountries() ); 328// 329// for ( int i = 0, l0 = countryCodes.length; i < l0; i++ ) 330// { 331// assertTrue( "Country '" + countryCodes[i] + "' is not a valid ISO country code.", 332// validCountries.contains( countryCodes[i] ) ); 333// 334// } 335 } 336 337 @Test public void SepaCountry() throws Exception 338 { 339 try 340 { 341 IBAN.isSepaCountry( null ); 342 fail( "Expected 'NullPointerException' not thrown." ); 343 } 344 catch ( final NullPointerException e ) 345 { 346 System.out.println( e.toString() ); 347 assertNotNull( e.getMessage() ); 348 } 349 350 for ( final String countryCode : SEPA_COUNTRY_CODES ) 351 { 352 assertTrue( "Expected SEPA country '" + countryCode + "' not found.", IBAN.isSepaCountry( countryCode ) ); 353 } 354 355 final Set<String> countriesWithoutSepa = new HashSet<String>( IBAN_COUNTRY_CODES ); 356 countriesWithoutSepa.removeAll( SEPA_COUNTRY_CODES ); 357 358 for ( final String countryCode : countriesWithoutSepa ) 359 { 360 assertFalse( "Non-SEPA country '" + countryCode + "' flagged as SEPA.", IBAN.isSepaCountry( countryCode ) ); 361 } 362 363 final Set<String> sepaCountries = new HashSet<String>( IBAN_COUNTRY_CODES ); 364 sepaCountries.retainAll( SEPA_COUNTRY_CODES ); 365 366 for ( final String countryCode : sepaCountries ) 367 { 368 assertTrue( "Expected SEPA country '" + countryCode + "' not found.", IBAN.isSepaCountry( countryCode ) ); 369 } 370 371 assertFalse( IBAN.isSepaCountry( "NOT_A_COUNTRY_CODE" ) ); 372 } 373 374 @Test public void CharSequence() throws Exception 375 { 376 final IBAN iban = IBAN.parse( "AL47212110090000000235698741" ); 377 378 System.out.println( iban.toString() ); 379 380 assertTrue( iban.length() == "AL47212110090000000235698741".length() ); 381 assertTrue( iban.charAt( 0 ) == 'A' ); 382 assertTrue( iban.charAt( "AL47212110090000000235698741".length() - 1 ) == '1' ); 383 384 try 385 { 386 iban.charAt( "AL47212110090000000235698741".length() ); 387 fail( "Expected 'IndexOutOfBoundsException' not thrown." ); 388 } 389 catch ( final IndexOutOfBoundsException e ) 390 { 391 System.out.println( e.toString() ); 392 assertNotNull( e.getMessage() ); 393 } 394 395 try 396 { 397 iban.subSequence( -1, 0 ); 398 fail( "Expected 'IndexOutOfBoundsException' not thrown." ); 399 } 400 catch ( final IndexOutOfBoundsException e ) 401 { 402 System.out.println( e.toString() ); 403 assertNotNull( e.getMessage() ); 404 } 405 try 406 { 407 iban.subSequence( 0, -1 ); 408 fail( "Expected 'IndexOutOfBoundsException' not thrown." ); 409 } 410 catch ( final IndexOutOfBoundsException e ) 411 { 412 System.out.println( e.toString() ); 413 assertNotNull( e.getMessage() ); 414 } 415 416 assertEquals( "AL47212110090000000235698741", iban.subSequence( 0, "AL47212110090000000235698741".length() ) ); 417 assertEquals( "AL", iban.subSequence( 0, 2 ) ); 418 } 419 420 @Test public void ParseElectronicFormat() throws Exception 421 { 422 final String[] valid = this.getValidValuesElectronicFormat(); 423 424 for ( int i = valid.length - 1; i >= 0; i-- ) 425 { 426 final IBAN iban = IBAN.parse( valid[i] ); 427 assertEquals( valid[i], iban.toString( IbanFormat.ELECTRONIC ) ); 428 System.out.println( iban.toString() ); 429 } 430 } 431 432 @Test public void ParseLetterFormat() throws Exception 433 { 434 final String[] valid = this.getValidValuesPrintFormat(); 435 436 for ( int i = valid.length - 1; i >= 0; i-- ) 437 { 438 final IBAN iban = IBAN.parse( valid[i] ); 439 assertEquals( valid[i], iban.toString( IbanFormat.PRINT ) ); 440 System.out.println( iban.toString() ); 441 } 442 } 443 444 @Test public void ParseBban() throws Exception 445 { 446 final IBAN iban = IBAN.parse( "AL47212110090000000235698741" ); 447 448 try 449 { 450 IBAN.parse( "TEST", (String) null ); 451 fail( "Expected 'NullPointerException' not thrown." ); 452 } 453 catch ( final NullPointerException e ) 454 { 455 System.out.println( e.toString() ); 456 assertNotNull( e.getMessage() ); 457 } 458 459 try 460 { 461 IBAN.parse( null, "TEST" ); 462 fail( "Expected 'NullPointerException' not thrown." ); 463 } 464 catch ( final NullPointerException e ) 465 { 466 System.out.println( e.toString() ); 467 assertNotNull( e.getMessage() ); 468 } 469 470 try 471 { 472 IBAN.parse( "TEST", "212110090000000235698741" ); 473 fail( "Expected 'IllegalArgumentException' not thrown." ); 474 } 475 catch ( final IllegalArgumentException e ) 476 { 477 System.out.println( e.toString() ); 478 assertNotNull( e.getMessage() ); 479 } 480 481 assertEquals( iban, IBAN.parse( "AL", "212110090000000235698741" ) ); 482 483 // 3!n4!n1!n16!c 484 try 485 { 486 IBAN.parse( "AL", "21211009235698741" ); 487 fail( "Expected 'IbanSyntaxException' not thrown." ); 488 } 489 catch ( final IbanSyntaxException e ) 490 { 491 System.out.println( e.toString() ); 492 assertNotNull( e.getMessage() ); 493 assertTrue( e.getErrorIndex() == "21211009235698741".length() ); 494 } 495 try 496 { 497 IBAN.parse( "AL", "2X2110090000000235698741" ); 498 fail( "Expected 'IbanSyntaxException' not thrown." ); 499 } 500 catch ( final IbanSyntaxException e ) 501 { 502 System.out.println( e.toString() ); 503 assertNotNull( e.getMessage() ); 504 assertTrue( e.getErrorIndex() == 1 ); 505 } 506 } 507 508 @Test public void ParseIbanAtPosition() throws Exception 509 { 510 final String[] validElectronicFormat = this.getValidValuesElectronicFormat(); 511 final String[] validPrintFormat = this.getValidValuesPrintFormat(); 512 final String[] invalid = this.getInvalidValues(); 513 514 try 515 { 516 IBAN.parse( "TEST", (ParsePosition) null ); 517 fail( "Expected 'NullPointerException' not thrown." ); 518 } 519 catch ( final NullPointerException e ) 520 { 521 System.out.println( e.toString() ); 522 assertNotNull( e.getMessage() ); 523 } 524 525 try 526 { 527 IBAN.parse( null, new ParsePosition( 0 ) ); 528 fail( "Expected 'NullPointerException' not thrown." ); 529 } 530 catch ( final NullPointerException e ) 531 { 532 System.out.println( e.toString() ); 533 assertNotNull( e.getMessage() ); 534 } 535 536 ParsePosition pos = new ParsePosition( 0 ); 537 IBAN.parse( "", pos ); 538 assertTrue( pos.getErrorIndex() == 0 ); 539 540 pos = new ParsePosition( 0 ); 541 IBAN.parse( "0", pos ); 542 assertTrue( pos.getErrorIndex() == 0 ); 543 544 pos = new ParsePosition( 0 ); 545 IBAN.parse( "00", pos ); 546 assertTrue( pos.getErrorIndex() == 0 ); 547 548 pos = new ParsePosition( 0 ); 549 IBAN.parse( "X", pos ); 550 assertTrue( pos.getErrorIndex() == 1 ); 551 552 pos = new ParsePosition( 0 ); 553 IBAN.parse( "X0", pos ); 554 assertTrue( pos.getErrorIndex() == 1 ); 555 556 pos = new ParsePosition( 0 ); 557 IBAN.parse( "0X", pos ); 558 assertTrue( pos.getErrorIndex() == 0 ); 559 560 pos = new ParsePosition( 0 ); 561 IBAN.parse( "XX", pos ); 562 assertTrue( pos.getErrorIndex() == 1 ); 563 564 // AL2!n3!n4!n1!n16!c 565 pos = new ParsePosition( 0 ); 566 IBAN.parse( "AL4721211009235698741", pos ); 567 assertTrue( pos.getErrorIndex() == "AL4721211009235698741".length() ); 568 569 pos = new ParsePosition( 0 ); 570 IBAN.parse( "AL472X2110090000000235698741", pos ); 571 assertTrue( pos.getErrorIndex() == 5 ); 572 573 try 574 { 575 pos = new ParsePosition( 0 ); 576 IBAN.parse( "AL00212110090000000235698741", pos ); 577 fail( "Expected 'IbanCheckDigitsException' not thrown." ); 578 } 579 catch ( final IbanCheckDigitsException e ) 580 { 581 System.out.println( e.toString() ); 582 assertNotNull( e.getMessage() ); 583 assertEquals( "AL00212110090000000235698741", e.getIban() ); 584 assertEquals( BigInteger.ZERO, e.getCheckDigits() ); 585 } 586 587 try 588 { 589 pos = new ParsePosition( 0 ); 590 IBAN.parse( "AL10 2121 1009 0000 0002 3569 8741", pos ); 591 fail( "Expected 'IbanCheckDigitsException' not thrown." ); 592 } 593 catch ( final IbanCheckDigitsException e ) 594 { 595 System.out.println( e.toString() ); 596 assertNotNull( e.getMessage() ); 597 assertEquals( "AL10212110090000000235698741", e.getIban() ); 598 assertEquals( BigInteger.TEN, e.getCheckDigits() ); 599 } 600 601 for ( int i = validElectronicFormat.length - 1; i >= 0; i-- ) 602 { 603 pos = new ParsePosition( 0 ); 604 IBAN iban = IBAN.parse( validElectronicFormat[i], pos ); 605 assertNotNull( iban ); 606 assertTrue( pos.getErrorIndex() == -1 ); 607 assertTrue( pos.getIndex() == validElectronicFormat[i].length() ); 608 assertEquals( validElectronicFormat[i], iban.toString( IbanFormat.ELECTRONIC ) ); 609 } 610 611 for ( int i = validPrintFormat.length - 1; i >= 0; i-- ) 612 { 613 pos = new ParsePosition( 0 ); 614 IBAN iban = IBAN.parse( validPrintFormat[i], pos ); 615 assertNotNull( iban ); 616 assertTrue( pos.getErrorIndex() == -1 ); 617 assertTrue( pos.getIndex() == validPrintFormat[i].length() ); 618 assertEquals( validPrintFormat[i], iban.toString( IbanFormat.PRINT ) ); 619 } 620 621 for ( int i = invalid.length - 1; i >= 0; i-- ) 622 { 623 pos = new ParsePosition( 0 ); 624 625 if ( invalid[i].equals( "AL47 2121 1009 0000 0002 3569 8741 " ) 626 || invalid[i].equals( "AL47212110090000000235698741 " ) ) 627 { 628 final IBAN iban = IBAN.parse( invalid[i], pos ); 629 assertNotNull( iban ); 630 assertTrue( pos.getErrorIndex() == -1 ); 631 assertTrue( pos.getIndex() == invalid[i].length() - 1 ); 632 } 633 else 634 { 635 assertNull( "'" + invalid[i] + "'", IBAN.parse( invalid[i], pos ) ); 636 assertTrue( "'" + invalid[i] + "'", pos.getErrorIndex() >= 0 ); 637 } 638 } 639 } 640 641 @Test public void ParseIban() throws Exception 642 { 643 final String[] validElectronicFormat = this.getValidValuesElectronicFormat(); 644 final String[] validPrintFormat = this.getValidValuesPrintFormat(); 645 final String[] invalid = this.getInvalidValues(); 646 647 try 648 { 649 IBAN.parse( null ); 650 fail( "Expected 'NullPointerException' not thrown." ); 651 } 652 catch ( final NullPointerException e ) 653 { 654 System.out.println( e.toString() ); 655 assertNotNull( e.getMessage() ); 656 } 657 658 for ( int i = validElectronicFormat.length - 1; i >= 0; i-- ) 659 { 660 final IBAN iban = IBAN.parse( validElectronicFormat[i] ); 661 assertNotNull( iban ); 662 assertEquals( validElectronicFormat[i], iban.toString( IbanFormat.ELECTRONIC ) ); 663 } 664 665 for ( int i = validPrintFormat.length - 1; i >= 0; i-- ) 666 { 667 final IBAN iban = IBAN.parse( validPrintFormat[i] ); 668 assertNotNull( iban ); 669 assertEquals( validPrintFormat[i], iban.toString( IbanFormat.PRINT ) ); 670 } 671 672 for ( int i = invalid.length - 1; i >= 0; i-- ) 673 { 674 try 675 { 676 IBAN.parse( invalid[i] ); 677 fail( "Expected 'IbanSyntaxException' not thrown." ); 678 } 679 catch ( final IbanSyntaxException e ) 680 { 681 System.out.println( e.toString() ); 682 assertNotNull( e.getMessage() ); 683 } 684 } 685 } 686 687 @Test public void ValueOf() throws Exception 688 { 689 final String[] validElectronicFormatValues = this.getValidValuesElectronicFormat(); 690 final String[] validPrintFormatValues = this.getValidValuesPrintFormat(); 691 final String[] invalidValues = this.getInvalidValues(); 692 693 try 694 { 695 IBAN.valueOf( null ); 696 fail( "Expected 'NullPointerException' not thrown." ); 697 } 698 catch ( final NullPointerException e ) 699 { 700 System.out.println( e.toString() ); 701 assertNotNull( e.getMessage() ); 702 } 703 704 for ( int i = validElectronicFormatValues.length - 1; i >= 0; i-- ) 705 { 706 final IBAN iban = IBAN.valueOf( validElectronicFormatValues[i] ); 707 assertEquals( validElectronicFormatValues[i], iban.toString( IbanFormat.ELECTRONIC ) ); 708 System.out.println( iban.toString() ); 709 } 710 for ( int i = validPrintFormatValues.length - 1; i >= 0; i-- ) 711 { 712 final IBAN iban = IBAN.valueOf( validPrintFormatValues[i] ); 713 assertEquals( validPrintFormatValues[i], iban.toString( IbanFormat.PRINT ) ); 714 System.out.println( iban.toString() ); 715 } 716 for ( int i = invalidValues.length - 1; i >= 0; i-- ) 717 { 718 try 719 { 720 IBAN.valueOf( invalidValues[i] ); 721 fail( "Expected 'IllegalArgumentException' not thrown." ); 722 } 723 catch ( final IllegalArgumentException e ) 724 { 725 System.out.println( e.toString() ); 726 assertNotNull( e.getMessage() ); 727 } 728 } 729 730 assertEquals( IBAN.parse( "AL47212110090000000235698741" ), IBAN.valueOf( "AL47212110090000000235698741" ) ); 731 732 try 733 { 734 IBAN.valueOf( "AL10212110090000000235698741" ); 735 fail( "Expected 'IllegalArgumentException' not thrown." ); 736 } 737 catch ( final IllegalArgumentException e ) 738 { 739 System.out.println( e.toString() ); 740 assertNotNull( e.getMessage() ); 741 } 742 } 743 744 @Test public void ValueOfBban() throws Exception 745 { 746 final IBAN iban = IBAN.valueOf( "AL47212110090000000235698741" ); 747 748 try 749 { 750 IBAN.valueOf( "TEST", (String) null ); 751 fail( "Expected 'NullPointerException' not thrown." ); 752 } 753 catch ( final NullPointerException e ) 754 { 755 System.out.println( e.toString() ); 756 assertNotNull( e.getMessage() ); 757 } 758 759 try 760 { 761 IBAN.valueOf( null, "TEST" ); 762 fail( "Expected 'NullPointerException' not thrown." ); 763 } 764 catch ( final NullPointerException e ) 765 { 766 System.out.println( e.toString() ); 767 assertNotNull( e.getMessage() ); 768 } 769 770 try 771 { 772 IBAN.valueOf( "TEST", "212110090000000235698741" ); 773 fail( "Expected 'IllegalArgumentException' not thrown." ); 774 } 775 catch ( final IllegalArgumentException e ) 776 { 777 System.out.println( e.toString() ); 778 assertNotNull( e.getMessage() ); 779 } 780 781 assertEquals( iban, IBAN.valueOf( "AL", "212110090000000235698741" ) ); 782 783 // 3!n4!n1!n16!c 784 try 785 { 786 IBAN.valueOf( "AL", "21211009235698741" ); 787 fail( "Expected 'IllegalArgumentException' not thrown." ); 788 } 789 catch ( final IllegalArgumentException e ) 790 { 791 System.out.println( e.toString() ); 792 assertNotNull( e.getMessage() ); 793 } 794 try 795 { 796 IBAN.parse( "AL", "2X2110090000000235698741" ); 797 fail( "Expected 'IllegalArgumentException' not thrown." ); 798 } 799 catch ( final IbanSyntaxException e ) 800 { 801 System.out.println( e.toString() ); 802 assertNotNull( e.getMessage() ); 803 } 804 } 805 806 @Test public void PeekIban() throws Exception 807 { 808 final String[] validElectronicFormatValues = this.getValidValuesElectronicFormat(); 809 final String[] validPrintFormatValues = this.getValidValuesPrintFormat(); 810 final String[] invalidValues = this.getInvalidValues(); 811 812 try 813 { 814 IBAN.peekIban( null ); 815 fail( "Expected 'NullPointerException' not thrown." ); 816 } 817 catch ( final NullPointerException e ) 818 { 819 System.out.println( e.toString() ); 820 assertNotNull( e.getMessage() ); 821 } 822 823 for ( int i = validElectronicFormatValues.length - 1; i >= 0; i-- ) 824 { 825 assertTrue( validElectronicFormatValues[i], IBAN.peekIban( validElectronicFormatValues[i] ) ); 826 } 827 for ( int i = validPrintFormatValues.length - 1; i >= 0; i-- ) 828 { 829 assertTrue( validPrintFormatValues[i], IBAN.peekIban( validPrintFormatValues[i] ) ); 830 } 831 for ( int i = invalidValues.length - 1; i >= 0; i-- ) 832 { 833 assertFalse( invalidValues[i], IBAN.peekIban( invalidValues[i] ) ); 834 } 835 836 assertTrue( IBAN.peekIban( "D" ) ); 837 assertTrue( IBAN.peekIban( "DE" ) ); 838 assertTrue( IBAN.peekIban( "DE9" ) ); 839 assertTrue( IBAN.peekIban( "DE99" ) ); 840 assertTrue( IBAN.peekIban( "DE99 " ) ); 841 842 assertTrue( IBAN.peekIban( "D" ) ); 843 assertFalse( IBAN.peekIban( "D E" ) ); 844 assertFalse( IBAN.peekIban( "DE 9" ) ); 845 assertFalse( IBAN.peekIban( "DE9 9" ) ); 846 assertFalse( IBAN.peekIban( "DE99 " ) ); 847 848 assertFalse( IBAN.peekIban( "0" ) ); 849 850 assertTrue( IBAN.peekIban( "AL47212110090000000235698741" ) ); 851 852 try 853 { 854 IBAN.peekIban( "AL10212110090000000235698741" ); 855 fail( "Expected 'IbanCheckDigitsException' not thrown." ); 856 } 857 catch ( final IbanCheckDigitsException e ) 858 { 859 System.out.println( e.toString() ); 860 assertNotNull( e.getMessage() ); 861 assertEquals( "AL10212110090000000235698741", e.getIban() ); 862 assertEquals( BigInteger.TEN, e.getCheckDigits() ); 863 } 864 865 try 866 { 867 IBAN.peekIban( "AL10 2121 1009 0000 0002 3569 8741" ); 868 fail( "Expected 'IbanCheckDigitsException' not thrown." ); 869 } 870 catch ( final IbanCheckDigitsException e ) 871 { 872 System.out.println( e.toString() ); 873 assertNotNull( e.getMessage() ); 874 assertEquals( "AL10212110090000000235698741", e.getIban() ); 875 assertEquals( BigInteger.TEN, e.getCheckDigits() ); 876 } 877 } 878 879 @Test public void ToString() throws Exception 880 { 881 final IBAN iban = IBAN.parse( "AL47212110090000000235698741" ); 882 883 try 884 { 885 iban.toString( null ); 886 fail( "Expected 'NullPointerException' not thrown." ); 887 } 888 catch ( final NullPointerException e ) 889 { 890 System.out.println( e.toString() ); 891 assertNotNull( e.getMessage() ); 892 } 893 894 assertEquals( "AL47212110090000000235698741", iban.toString( IbanFormat.ELECTRONIC ) ); 895 assertEquals( "AL47 2121 1009 0000 0002 3569 8741", iban.toString( IbanFormat.PRINT ) ); 896 } 897 898 @Test public void Append() throws Exception 899 { 900 final IBAN iban = IBAN.parse( "AL47212110090000000235698741" ); 901 902 try 903 { 904 iban.append( null, new StringBuilder() ); 905 fail( "Expected 'NullPointerException' not thrown." ); 906 } 907 catch ( final NullPointerException e ) 908 { 909 System.out.println( e.toString() ); 910 assertNotNull( e.getMessage() ); 911 } 912 try 913 { 914 iban.append( IbanFormat.ELECTRONIC, null ); 915 fail( "Expected 'NullPointerException' not thrown." ); 916 } 917 catch ( final NullPointerException e ) 918 { 919 System.out.println( e.toString() ); 920 assertNotNull( e.getMessage() ); 921 } 922 923 assertEquals( "AL47212110090000000235698741", 924 iban.append( IbanFormat.ELECTRONIC, new StringBuilder() ).toString() ); 925 926 assertEquals( "AL47 2121 1009 0000 0002 3569 8741", 927 iban.append( IbanFormat.PRINT, new StringBuilder() ).toString() ); 928 929 } 930 931 @Test public void Formattable() throws Exception 932 { 933 final IBAN iban = IBAN.parse( "AL47212110090000000235698741" ); 934 935 try 936 { 937 iban.formatTo( null, -1, -1, -1 ); 938 fail( "Expected 'NullPointerException' not thrown." ); 939 } 940 catch ( final NullPointerException e ) 941 { 942 System.out.println( e.toString() ); 943 assertNotNull( e.getMessage() ); 944 } 945 946 assertEquals( "AL", String.format( "%1$.2s", iban ) ); 947 assertEquals( "AL", String.format( "%1$#.2s", iban ) ); 948 assertEquals( "AL4721", String.format( "%1$.6s", iban ) ); 949 assertEquals( "AL47 2", String.format( "%1$#.6s", iban ) ); 950 assertEquals( "AL47212110090000000235698741", String.format( "%1$s", iban ) ); 951 assertEquals( "AL47 2121 1009 0000 0002 3569 8741", String.format( "%1$#s", iban ) ); 952 assertEquals( " AL47212110090000000235698741", String.format( "%1$50s", iban ) ); 953 assertEquals( " AL47 2121 1009 0000 0002 3569 8741", String.format( "%1$#50s", iban ) ); 954 assertEquals( "AL47212110090000000235698741 ", String.format( "%1$-50s", iban ) ); 955 assertEquals( "AL47 2121 1009 0000 0002 3569 8741 ", String.format( "%1$-#50s", iban ) ); 956 957 try 958 { 959 String.format( "%1$S", iban ); 960 fail( "Expected 'IllegalFormatFlagsException' not thrown." ); 961 } 962 catch ( final IllegalFormatFlagsException e ) 963 { 964 System.out.println( e.toString() ); 965 assertNotNull( e.getMessage() ); 966 } 967 968 try 969 { 970 String.format( "%1$-50S", iban ); 971 fail( "Expected 'IllegalFormatFlagsException' not thrown." ); 972 } 973 catch ( final IllegalFormatFlagsException e ) 974 { 975 System.out.println( e.toString() ); 976 assertNotNull( e.getMessage() ); 977 } 978 979 try 980 { 981 String.format( "%1$#S", iban ); 982 fail( "Expected 'IllegalFormatFlagsException' not thrown." ); 983 } 984 catch ( final IllegalFormatFlagsException e ) 985 { 986 System.out.println( e.toString() ); 987 assertNotNull( e.getMessage() ); 988 } 989 990 try 991 { 992 String.format( "%1$-#50S", iban ); 993 fail( "Expected 'IllegalFormatFlagsException' not thrown." ); 994 } 995 catch ( final IllegalFormatFlagsException e ) 996 { 997 System.out.println( e.toString() ); 998 assertNotNull( e.getMessage() ); 999 } 1000 } 1001 1002 @Test public void EqualsAndHashCode() throws Exception 1003 { 1004 final String[] electronic = this.getValidValuesElectronicFormat(); 1005 final String[] print = this.getValidValuesPrintFormat(); 1006 1007 for ( int i = electronic.length - 1; i >= 0; i-- ) 1008 { 1009 final IBAN iban1 = IBAN.parse( electronic[i] ); 1010 final IBAN iban2 = IBAN.parse( electronic[i] ); 1011 assertEquals( iban1, iban2 ); 1012 assertTrue( iban1.hashCode() == iban2.hashCode() ); 1013 } 1014 for ( int i = print.length - 1; i >= 0; i-- ) 1015 { 1016 final IBAN iban1 = IBAN.parse( print[i] ); 1017 final IBAN iban2 = IBAN.parse( print[i] ); 1018 assertEquals( iban1, iban2 ); 1019 assertTrue( iban1.hashCode() == iban2.hashCode() ); 1020 } 1021 } 1022 1023 @Test public void CompareTo() throws Exception 1024 { 1025 final String[] electronic = this.getValidValuesElectronicFormat(); 1026 final String[] print = this.getValidValuesPrintFormat(); 1027 final IBAN iban = IBAN.valueOf( "AL47212110090000000235698741" ); 1028 1029 try 1030 { 1031 iban.compareTo( null ); 1032 fail( "Expected 'NullPointerException' not thrown." ); 1033 } 1034 catch ( final NullPointerException e ) 1035 { 1036 System.out.println( e.toString() ); 1037 assertNotNull( e.getMessage() ); 1038 } 1039 1040 for ( int i = electronic.length - 1; i >= 0; i-- ) 1041 { 1042 final IBAN iban1 = IBAN.parse( electronic[i] ); 1043 final IBAN iban2 = IBAN.parse( electronic[i] ); 1044 assertTrue( iban1.compareTo( iban2 ) == 0 ); 1045 } 1046 for ( int i = print.length - 1; i >= 0; i-- ) 1047 { 1048 final IBAN iban1 = IBAN.parse( print[i] ); 1049 final IBAN iban2 = IBAN.parse( print[i] ); 1050 assertTrue( iban1.compareTo( iban2 ) == 0 ); 1051 } 1052 } 1053 1054 @Test public void BankAndBranchIdentifierAndSepaCountry() throws Exception 1055 { 1056 IBAN iban = IBAN.valueOf( "AL47212110090000000235698741" ); 1057 assertEquals( "212", iban.getBankIdentifier() ); 1058 assertEquals( "1100", iban.getBranchIdentifier() ); 1059 assertFalse( iban.isSepaCountry() ); 1060 1061 iban = IBAN.valueOf( "AL47 2121 1009 0000 0002 3569 8741" ); 1062 assertEquals( "212", iban.getBankIdentifier() ); 1063 assertEquals( "1100", iban.getBranchIdentifier() ); 1064 assertFalse( iban.isSepaCountry() ); 1065 1066 IBAN bban = IBAN.valueOf( "AL", "212110090000000235698741" ); 1067 assertEquals( iban, bban ); 1068 assertEquals( "212", bban.getBankIdentifier() ); 1069 assertEquals( "1100", bban.getBranchIdentifier() ); 1070 assertFalse( bban.isSepaCountry() ); 1071 1072 bban = IBAN.valueOf( "AL", "2121 1009 0000 0002 3569 8741" ); 1073 assertEquals( iban, bban ); 1074 assertEquals( "212", bban.getBankIdentifier() ); 1075 assertEquals( "1100", bban.getBranchIdentifier() ); 1076 assertFalse( bban.isSepaCountry() ); 1077 1078 iban = IBAN.valueOf( "AD1200012030200359100100" ); 1079 assertEquals( "0001", iban.getBankIdentifier() ); 1080 assertEquals( "2030", iban.getBranchIdentifier() ); 1081 assertFalse( iban.isSepaCountry() ); 1082 1083 iban = IBAN.valueOf( "AD12 0001 2030 2003 5910 0100" ); 1084 assertEquals( "0001", iban.getBankIdentifier() ); 1085 assertEquals( "2030", iban.getBranchIdentifier() ); 1086 assertFalse( iban.isSepaCountry() ); 1087 1088 bban = IBAN.valueOf( "AD", "00012030200359100100" ); 1089 assertEquals( iban, bban ); 1090 assertEquals( "0001", bban.getBankIdentifier() ); 1091 assertEquals( "2030", bban.getBranchIdentifier() ); 1092 assertFalse( bban.isSepaCountry() ); 1093 1094 bban = IBAN.valueOf( "AD", "0001 2030 2003 5910 0100" ); 1095 assertEquals( iban, bban ); 1096 assertEquals( "0001", bban.getBankIdentifier() ); 1097 assertEquals( "2030", bban.getBranchIdentifier() ); 1098 assertFalse( bban.isSepaCountry() ); 1099 1100 iban = IBAN.valueOf( "AT611904300234573201" ); 1101 assertEquals( "19043", iban.getBankIdentifier() ); 1102 assertNull( iban.getBranchIdentifier() ); 1103 assertTrue( iban.isSepaCountry() ); 1104 1105 iban = IBAN.valueOf( "AT61 1904 3002 3457 3201" ); 1106 assertEquals( "19043", iban.getBankIdentifier() ); 1107 assertNull( iban.getBranchIdentifier() ); 1108 assertTrue( iban.isSepaCountry() ); 1109 1110 bban = IBAN.valueOf( "AT", "1904300234573201" ); 1111 assertEquals( iban, bban ); 1112 assertEquals( "19043", bban.getBankIdentifier() ); 1113 assertNull( bban.getBranchIdentifier() ); 1114 assertTrue( bban.isSepaCountry() ); 1115 1116 bban = IBAN.valueOf( "AT", "1904 3002 3457 3201" ); 1117 assertEquals( iban, bban ); 1118 assertEquals( "19043", bban.getBankIdentifier() ); 1119 assertNull( bban.getBranchIdentifier() ); 1120 assertTrue( bban.isSepaCountry() ); 1121 1122 iban = IBAN.valueOf( "AZ21NABZ00000000137010001944" ); 1123 assertEquals( "NABZ", iban.getBankIdentifier() ); 1124 assertNull( iban.getBranchIdentifier() ); 1125 assertFalse( iban.isSepaCountry() ); 1126 1127 iban = IBAN.valueOf( "AZ21 NABZ 0000 0000 1370 1000 1944" ); 1128 assertEquals( "NABZ", iban.getBankIdentifier() ); 1129 assertNull( iban.getBranchIdentifier() ); 1130 assertFalse( iban.isSepaCountry() ); 1131 1132 bban = IBAN.valueOf( "AZ", "NABZ00000000137010001944" ); 1133 assertEquals( iban, bban ); 1134 assertEquals( "NABZ", bban.getBankIdentifier() ); 1135 assertNull( bban.getBranchIdentifier() ); 1136 assertFalse( bban.isSepaCountry() ); 1137 1138 bban = IBAN.valueOf( "AZ", "NABZ 0000 0000 1370 1000 1944" ); 1139 assertEquals( iban, bban ); 1140 assertEquals( "NABZ", bban.getBankIdentifier() ); 1141 assertNull( bban.getBranchIdentifier() ); 1142 assertFalse( bban.isSepaCountry() ); 1143 1144 iban = IBAN.valueOf( "BH67BMAG00001299123456" ); 1145 assertEquals( "BMAG", iban.getBankIdentifier() ); 1146 assertNull( iban.getBranchIdentifier() ); 1147 assertFalse( iban.isSepaCountry() ); 1148 1149 iban = IBAN.valueOf( "BH67 BMAG 0000 1299 1234 56" ); 1150 assertEquals( "BMAG", iban.getBankIdentifier() ); 1151 assertNull( iban.getBranchIdentifier() ); 1152 assertFalse( iban.isSepaCountry() ); 1153 1154 bban = IBAN.valueOf( "BH", "BMAG00001299123456" ); 1155 assertEquals( iban, bban ); 1156 assertEquals( "BMAG", bban.getBankIdentifier() ); 1157 assertNull( bban.getBranchIdentifier() ); 1158 assertFalse( bban.isSepaCountry() ); 1159 1160 bban = IBAN.valueOf( "BH", "BMAG 0000 1299 1234 56" ); 1161 assertEquals( iban, bban ); 1162 assertEquals( "BMAG", bban.getBankIdentifier() ); 1163 assertNull( bban.getBranchIdentifier() ); 1164 assertFalse( bban.isSepaCountry() ); 1165 1166 iban = IBAN.valueOf( "BE68539007547034" ); 1167 assertEquals( "539", iban.getBankIdentifier() ); 1168 assertNull( iban.getBranchIdentifier() ); 1169 assertTrue( iban.isSepaCountry() ); 1170 1171 iban = IBAN.valueOf( "BE68 5390 0754 7034" ); 1172 assertEquals( "539", iban.getBankIdentifier() ); 1173 assertNull( iban.getBranchIdentifier() ); 1174 assertTrue( iban.isSepaCountry() ); 1175 1176 bban = IBAN.valueOf( "BE", "539007547034" ); 1177 assertEquals( iban, bban ); 1178 assertEquals( "539", bban.getBankIdentifier() ); 1179 assertNull( bban.getBranchIdentifier() ); 1180 assertTrue( bban.isSepaCountry() ); 1181 1182 bban = IBAN.valueOf( "BE", "5390 0754 7034" ); 1183 assertEquals( iban, bban ); 1184 assertEquals( "539", bban.getBankIdentifier() ); 1185 assertNull( bban.getBranchIdentifier() ); 1186 assertTrue( bban.isSepaCountry() ); 1187 1188 iban = IBAN.valueOf( "BA391290079401028494" ); 1189 assertEquals( "129", iban.getBankIdentifier() ); 1190 assertEquals( "007", iban.getBranchIdentifier() ); 1191 assertFalse( iban.isSepaCountry() ); 1192 1193 iban = IBAN.valueOf( "BA39 1290 0794 0102 8494" ); 1194 assertEquals( "129", iban.getBankIdentifier() ); 1195 assertEquals( "007", iban.getBranchIdentifier() ); 1196 assertFalse( iban.isSepaCountry() ); 1197 1198 bban = IBAN.valueOf( "BA", "1290079401028494" ); 1199 assertEquals( iban, bban ); 1200 assertEquals( "129", bban.getBankIdentifier() ); 1201 assertEquals( "007", bban.getBranchIdentifier() ); 1202 assertFalse( bban.isSepaCountry() ); 1203 1204 bban = IBAN.valueOf( "BA", "1290 0794 0102 8494" ); 1205 assertEquals( iban, bban ); 1206 assertEquals( "129", bban.getBankIdentifier() ); 1207 assertEquals( "007", bban.getBranchIdentifier() ); 1208 assertFalse( bban.isSepaCountry() ); 1209 1210 iban = IBAN.valueOf( "BR9700360305000010009795493P1" ); 1211 assertEquals( "00360305", iban.getBankIdentifier() ); 1212 assertEquals( "00001", iban.getBranchIdentifier() ); 1213 assertFalse( iban.isSepaCountry() ); 1214 1215 iban = IBAN.valueOf( "BR97 0036 0305 0000 1000 9795 493P 1" ); 1216 assertEquals( "00360305", iban.getBankIdentifier() ); 1217 assertEquals( "00001", iban.getBranchIdentifier() ); 1218 assertFalse( iban.isSepaCountry() ); 1219 1220 bban = IBAN.valueOf( "BR", "00360305000010009795493P1" ); 1221 assertEquals( iban, bban ); 1222 assertEquals( "00360305", bban.getBankIdentifier() ); 1223 assertEquals( "00001", bban.getBranchIdentifier() ); 1224 assertFalse( bban.isSepaCountry() ); 1225 1226 bban = IBAN.valueOf( "BR", "0036 0305 0000 1000 9795 493P 1" ); 1227 assertEquals( iban, bban ); 1228 assertEquals( "00360305", bban.getBankIdentifier() ); 1229 assertEquals( "00001", bban.getBranchIdentifier() ); 1230 assertFalse( bban.isSepaCountry() ); 1231 1232 iban = IBAN.valueOf( "BG80BNBG96611020345678" ); 1233 assertEquals( "BNBG", iban.getBankIdentifier() ); 1234 assertEquals( "9661", iban.getBranchIdentifier() ); 1235 assertTrue( iban.isSepaCountry() ); 1236 1237 iban = IBAN.valueOf( "BG80 BNBG 9661 1020 3456 78" ); 1238 assertEquals( "BNBG", iban.getBankIdentifier() ); 1239 assertEquals( "9661", iban.getBranchIdentifier() ); 1240 assertTrue( iban.isSepaCountry() ); 1241 1242 bban = IBAN.valueOf( "BG", "BNBG96611020345678" ); 1243 assertEquals( iban, bban ); 1244 assertEquals( "BNBG", bban.getBankIdentifier() ); 1245 assertEquals( "9661", bban.getBranchIdentifier() ); 1246 assertTrue( bban.isSepaCountry() ); 1247 1248 bban = IBAN.valueOf( "BG", "BNBG 9661 1020 3456 78" ); 1249 assertEquals( iban, bban ); 1250 assertEquals( "BNBG", bban.getBankIdentifier() ); 1251 assertEquals( "9661", bban.getBranchIdentifier() ); 1252 assertTrue( bban.isSepaCountry() ); 1253 1254 iban = IBAN.valueOf( "CR0515202001026284066" ); 1255 assertEquals( "152", iban.getBankIdentifier() ); 1256 assertNull( iban.getBranchIdentifier() ); 1257 assertFalse( iban.isSepaCountry() ); 1258 1259 iban = IBAN.valueOf( "CR05 1520 2001 0262 8406 6" ); 1260 assertEquals( "152", iban.getBankIdentifier() ); 1261 assertNull( iban.getBranchIdentifier() ); 1262 assertFalse( iban.isSepaCountry() ); 1263 1264 bban = IBAN.valueOf( "CR", "15202001026284066" ); 1265 assertEquals( iban, bban ); 1266 assertEquals( "152", bban.getBankIdentifier() ); 1267 assertNull( bban.getBranchIdentifier() ); 1268 assertFalse( bban.isSepaCountry() ); 1269 1270 bban = IBAN.valueOf( "CR", "1520 2001 0262 8406 6" ); 1271 assertEquals( iban, bban ); 1272 assertEquals( "152", bban.getBankIdentifier() ); 1273 assertNull( bban.getBranchIdentifier() ); 1274 assertFalse( bban.isSepaCountry() ); 1275 1276 iban = IBAN.valueOf( "HR1210010051863000160" ); 1277 assertEquals( "1001005", iban.getBankIdentifier() ); 1278 assertNull( iban.getBranchIdentifier() ); 1279 assertTrue( iban.isSepaCountry() ); 1280 1281 iban = IBAN.valueOf( "HR12 1001 0051 8630 0016 0" ); 1282 assertEquals( "1001005", iban.getBankIdentifier() ); 1283 assertNull( iban.getBranchIdentifier() ); 1284 assertTrue( iban.isSepaCountry() ); 1285 1286 bban = IBAN.valueOf( "HR", "10010051863000160" ); 1287 assertEquals( iban, bban ); 1288 assertEquals( "1001005", bban.getBankIdentifier() ); 1289 assertNull( bban.getBranchIdentifier() ); 1290 assertTrue( bban.isSepaCountry() ); 1291 1292 bban = IBAN.valueOf( "HR", "1001 0051 8630 0016 0" ); 1293 assertEquals( iban, bban ); 1294 assertEquals( "1001005", bban.getBankIdentifier() ); 1295 assertNull( bban.getBranchIdentifier() ); 1296 assertTrue( bban.isSepaCountry() ); 1297 1298 iban = IBAN.valueOf( "CY17002001280000001200527600" ); 1299 assertEquals( "002", iban.getBankIdentifier() ); 1300 assertEquals( "00128", iban.getBranchIdentifier() ); 1301 assertTrue( iban.isSepaCountry() ); 1302 1303 iban = IBAN.valueOf( "CY17 0020 0128 0000 0012 0052 7600" ); 1304 assertEquals( "002", iban.getBankIdentifier() ); 1305 assertEquals( "00128", iban.getBranchIdentifier() ); 1306 assertTrue( iban.isSepaCountry() ); 1307 1308 bban = IBAN.valueOf( "CY", "002001280000001200527600" ); 1309 assertEquals( iban, bban ); 1310 assertEquals( "002", bban.getBankIdentifier() ); 1311 assertEquals( "00128", bban.getBranchIdentifier() ); 1312 assertTrue( bban.isSepaCountry() ); 1313 1314 bban = IBAN.valueOf( "CY", "0020 0128 0000 0012 0052 7600" ); 1315 assertEquals( iban, bban ); 1316 assertEquals( "002", bban.getBankIdentifier() ); 1317 assertEquals( "00128", bban.getBranchIdentifier() ); 1318 assertTrue( bban.isSepaCountry() ); 1319 1320 iban = IBAN.valueOf( "CZ6508000000192000145399" ); 1321 assertEquals( "0800", iban.getBankIdentifier() ); 1322 assertNull( iban.getBranchIdentifier() ); 1323 assertTrue( iban.isSepaCountry() ); 1324 1325 iban = IBAN.valueOf( "CZ65 0800 0000 1920 0014 5399" ); 1326 assertEquals( "0800", iban.getBankIdentifier() ); 1327 assertNull( iban.getBranchIdentifier() ); 1328 assertTrue( iban.isSepaCountry() ); 1329 1330 bban = IBAN.valueOf( "CZ", "08000000192000145399" ); 1331 assertEquals( iban, bban ); 1332 assertEquals( "0800", bban.getBankIdentifier() ); 1333 assertNull( bban.getBranchIdentifier() ); 1334 assertTrue( bban.isSepaCountry() ); 1335 1336 bban = IBAN.valueOf( "CZ", "0800 0000 1920 0014 5399" ); 1337 assertEquals( iban, bban ); 1338 assertEquals( "0800", bban.getBankIdentifier() ); 1339 assertNull( bban.getBranchIdentifier() ); 1340 assertTrue( bban.isSepaCountry() ); 1341 1342 iban = IBAN.valueOf( "DK5000400440116243" ); 1343 assertEquals( "0040", iban.getBankIdentifier() ); 1344 assertNull( iban.getBranchIdentifier() ); 1345 assertTrue( iban.isSepaCountry() ); 1346 1347 iban = IBAN.valueOf( "DK50 0040 0440 1162 43" ); 1348 assertEquals( "0040", iban.getBankIdentifier() ); 1349 assertNull( iban.getBranchIdentifier() ); 1350 assertTrue( iban.isSepaCountry() ); 1351 1352 bban = IBAN.valueOf( "DK", "00400440116243" ); 1353 assertEquals( iban, bban ); 1354 assertEquals( "0040", bban.getBankIdentifier() ); 1355 assertNull( bban.getBranchIdentifier() ); 1356 assertTrue( bban.isSepaCountry() ); 1357 1358 bban = IBAN.valueOf( "DK", "0040 0440 1162 43" ); 1359 assertEquals( iban, bban ); 1360 assertEquals( "0040", bban.getBankIdentifier() ); 1361 assertNull( bban.getBranchIdentifier() ); 1362 assertTrue( bban.isSepaCountry() ); 1363 1364 iban = IBAN.valueOf( "FO6264600001631634" ); 1365 assertEquals( "6460", iban.getBankIdentifier() ); 1366 assertNull( iban.getBranchIdentifier() ); 1367 assertFalse( iban.isSepaCountry() ); 1368 1369 iban = IBAN.valueOf( "FO62 6460 0001 6316 34" ); 1370 assertEquals( "6460", iban.getBankIdentifier() ); 1371 assertNull( iban.getBranchIdentifier() ); 1372 assertFalse( iban.isSepaCountry() ); 1373 1374 bban = IBAN.valueOf( "FO", "64600001631634" ); 1375 assertEquals( iban, bban ); 1376 assertEquals( "6460", bban.getBankIdentifier() ); 1377 assertNull( bban.getBranchIdentifier() ); 1378 assertFalse( bban.isSepaCountry() ); 1379 1380 bban = IBAN.valueOf( "FO", "6460 0001 6316 34" ); 1381 assertEquals( iban, bban ); 1382 assertEquals( "6460", bban.getBankIdentifier() ); 1383 assertNull( bban.getBranchIdentifier() ); 1384 assertFalse( bban.isSepaCountry() ); 1385 1386 iban = IBAN.valueOf( "GL8964710001000206" ); 1387 assertEquals( "6471", iban.getBankIdentifier() ); 1388 assertNull( iban.getBranchIdentifier() ); 1389 assertFalse( iban.isSepaCountry() ); 1390 1391 iban = IBAN.valueOf( "GL89 6471 0001 0002 06" ); 1392 assertEquals( "6471", iban.getBankIdentifier() ); 1393 assertNull( iban.getBranchIdentifier() ); 1394 assertFalse( iban.isSepaCountry() ); 1395 1396 bban = IBAN.valueOf( "GL", "64710001000206" ); 1397 assertEquals( iban, bban ); 1398 assertEquals( "6471", bban.getBankIdentifier() ); 1399 assertNull( bban.getBranchIdentifier() ); 1400 assertFalse( bban.isSepaCountry() ); 1401 1402 bban = IBAN.valueOf( "GL", "6471 0001 0002 06" ); 1403 assertEquals( iban, bban ); 1404 assertEquals( "6471", bban.getBankIdentifier() ); 1405 assertNull( bban.getBranchIdentifier() ); 1406 assertFalse( bban.isSepaCountry() ); 1407 1408 iban = IBAN.valueOf( "DO28BAGR00000001212453611324" ); 1409 assertEquals( "BAGR", iban.getBankIdentifier() ); 1410 assertNull( iban.getBranchIdentifier() ); 1411 assertFalse( iban.isSepaCountry() ); 1412 1413 iban = IBAN.valueOf( "DO28 BAGR 0000 0001 2124 5361 1324" ); 1414 assertEquals( "BAGR", iban.getBankIdentifier() ); 1415 assertNull( iban.getBranchIdentifier() ); 1416 assertFalse( iban.isSepaCountry() ); 1417 1418 bban = IBAN.valueOf( "DO", "BAGR00000001212453611324" ); 1419 assertEquals( iban, bban ); 1420 assertEquals( "BAGR", bban.getBankIdentifier() ); 1421 assertNull( bban.getBranchIdentifier() ); 1422 assertFalse( bban.isSepaCountry() ); 1423 1424 bban = IBAN.valueOf( "DO", "BAGR 0000 0001 2124 5361 1324" ); 1425 assertEquals( iban, bban ); 1426 assertEquals( "BAGR", bban.getBankIdentifier() ); 1427 assertNull( bban.getBranchIdentifier() ); 1428 assertFalse( bban.isSepaCountry() ); 1429 1430 iban = IBAN.valueOf( "EE382200221020145685" ); 1431 assertEquals( "22", iban.getBankIdentifier() ); 1432 assertNull( iban.getBranchIdentifier() ); 1433 assertTrue( iban.isSepaCountry() ); 1434 1435 iban = IBAN.valueOf( "EE38 2200 2210 2014 5685" ); 1436 assertEquals( "22", iban.getBankIdentifier() ); 1437 assertNull( iban.getBranchIdentifier() ); 1438 assertTrue( iban.isSepaCountry() ); 1439 1440 bban = IBAN.valueOf( "EE", "2200221020145685" ); 1441 assertEquals( iban, bban ); 1442 assertEquals( "22", bban.getBankIdentifier() ); 1443 assertNull( bban.getBranchIdentifier() ); 1444 assertTrue( bban.isSepaCountry() ); 1445 1446 bban = IBAN.valueOf( "EE", "2200 2210 2014 5685" ); 1447 assertEquals( iban, bban ); 1448 assertEquals( "22", bban.getBankIdentifier() ); 1449 assertNull( bban.getBranchIdentifier() ); 1450 assertTrue( bban.isSepaCountry() ); 1451 1452 iban = IBAN.valueOf( "FI2112345600000785" ); 1453 assertEquals( "123", iban.getBankIdentifier() ); 1454 assertNull( iban.getBranchIdentifier() ); 1455 assertTrue( iban.isSepaCountry() ); 1456 1457 iban = IBAN.valueOf( "FI21 1234 5600 0007 85" ); 1458 assertEquals( "123", iban.getBankIdentifier() ); 1459 assertNull( iban.getBranchIdentifier() ); 1460 assertTrue( iban.isSepaCountry() ); 1461 1462 bban = IBAN.valueOf( "FI", "12345600000785" ); 1463 assertEquals( iban, bban ); 1464 assertEquals( "123", bban.getBankIdentifier() ); 1465 assertNull( bban.getBranchIdentifier() ); 1466 assertTrue( bban.isSepaCountry() ); 1467 1468 bban = IBAN.valueOf( "FI", "1234 5600 0007 85" ); 1469 assertEquals( iban, bban ); 1470 assertEquals( "123", bban.getBankIdentifier() ); 1471 assertNull( bban.getBranchIdentifier() ); 1472 assertTrue( bban.isSepaCountry() ); 1473 1474 bban = IBAN.valueOf( "AX", "1234 5600 0007 85" ); 1475 assertEquals( iban, bban ); 1476 assertEquals( "AX", bban.getCountryCode() ); 1477 assertEquals( "123", bban.getBankIdentifier() ); 1478 assertNull( bban.getBranchIdentifier() ); 1479 assertTrue( bban.isSepaCountry() ); 1480 1481 iban = IBAN.valueOf( "FR1420041010050500013M02606" ); 1482 assertEquals( "20041", iban.getBankIdentifier() ); 1483 assertNull( iban.getBranchIdentifier() ); 1484 assertTrue( iban.isSepaCountry() ); 1485 1486 iban = IBAN.valueOf( "FR14 2004 1010 0505 0001 3M02 606" ); 1487 assertEquals( "20041", iban.getBankIdentifier() ); 1488 assertNull( iban.getBranchIdentifier() ); 1489 assertTrue( iban.isSepaCountry() ); 1490 1491 bban = IBAN.valueOf( "FR", "20041010050500013M02606" ); 1492 assertEquals( iban, bban ); 1493 assertEquals( "20041", bban.getBankIdentifier() ); 1494 assertNull( bban.getBranchIdentifier() ); 1495 assertTrue( bban.isSepaCountry() ); 1496 1497 bban = IBAN.valueOf( "FR", "2004 1010 0505 0001 3M02 606" ); 1498 assertEquals( iban, bban ); 1499 assertEquals( "20041", bban.getBankIdentifier() ); 1500 assertNull( bban.getBranchIdentifier() ); 1501 assertTrue( bban.isSepaCountry() ); 1502 1503 bban = IBAN.valueOf( "BL", "2004 1010 0505 0001 3M02 606" ); 1504 assertEquals( iban, bban ); 1505 assertEquals( "BL", bban.getCountryCode() ); 1506 assertEquals( "20041", bban.getBankIdentifier() ); 1507 assertNull( bban.getBranchIdentifier() ); 1508 assertTrue( bban.isSepaCountry() ); 1509 1510 bban = IBAN.valueOf( "GF", "2004 1010 0505 0001 3M02 606" ); 1511 assertEquals( iban, bban ); 1512 assertEquals( "GF", bban.getCountryCode() ); 1513 assertEquals( "20041", bban.getBankIdentifier() ); 1514 assertNull( bban.getBranchIdentifier() ); 1515 assertTrue( bban.isSepaCountry() ); 1516 1517 bban = IBAN.valueOf( "GP", "2004 1010 0505 0001 3M02 606" ); 1518 assertEquals( iban, bban ); 1519 assertEquals( "GP", bban.getCountryCode() ); 1520 assertEquals( "20041", bban.getBankIdentifier() ); 1521 assertNull( bban.getBranchIdentifier() ); 1522 assertTrue( bban.isSepaCountry() ); 1523 1524 bban = IBAN.valueOf( "MF", "2004 1010 0505 0001 3M02 606" ); 1525 assertEquals( iban, bban ); 1526 assertEquals( "MF", bban.getCountryCode() ); 1527 assertEquals( "20041", bban.getBankIdentifier() ); 1528 assertNull( bban.getBranchIdentifier() ); 1529 assertTrue( bban.isSepaCountry() ); 1530 1531 bban = IBAN.valueOf( "MQ", "2004 1010 0505 0001 3M02 606" ); 1532 assertEquals( iban, bban ); 1533 assertEquals( "MQ", bban.getCountryCode() ); 1534 assertEquals( "20041", bban.getBankIdentifier() ); 1535 assertNull( bban.getBranchIdentifier() ); 1536 assertTrue( bban.isSepaCountry() ); 1537 1538 bban = IBAN.valueOf( "NC", "2004 1010 0505 0001 3M02 606" ); 1539 assertEquals( iban, bban ); 1540 assertEquals( "NC", bban.getCountryCode() ); 1541 assertEquals( "20041", bban.getBankIdentifier() ); 1542 assertNull( bban.getBranchIdentifier() ); 1543 assertFalse( bban.isSepaCountry() ); 1544 1545 bban = IBAN.valueOf( "PF", "2004 1010 0505 0001 3M02 606" ); 1546 assertEquals( iban, bban ); 1547 assertEquals( "PF", bban.getCountryCode() ); 1548 assertEquals( "20041", bban.getBankIdentifier() ); 1549 assertNull( bban.getBranchIdentifier() ); 1550 assertFalse( bban.isSepaCountry() ); 1551 1552 bban = IBAN.valueOf( "PM", "2004 1010 0505 0001 3M02 606" ); 1553 assertEquals( iban, bban ); 1554 assertEquals( "PM", bban.getCountryCode() ); 1555 assertEquals( "20041", bban.getBankIdentifier() ); 1556 assertNull( bban.getBranchIdentifier() ); 1557 assertTrue( bban.isSepaCountry() ); 1558 1559 bban = IBAN.valueOf( "RE", "2004 1010 0505 0001 3M02 606" ); 1560 assertEquals( iban, bban ); 1561 assertEquals( "RE", bban.getCountryCode() ); 1562 assertEquals( "20041", bban.getBankIdentifier() ); 1563 assertNull( bban.getBranchIdentifier() ); 1564 assertTrue( bban.isSepaCountry() ); 1565 1566 bban = IBAN.valueOf( "TF", "2004 1010 0505 0001 3M02 606" ); 1567 assertEquals( iban, bban ); 1568 assertEquals( "TF", bban.getCountryCode() ); 1569 assertEquals( "20041", bban.getBankIdentifier() ); 1570 assertNull( bban.getBranchIdentifier() ); 1571 assertFalse( bban.isSepaCountry() ); 1572 1573 bban = IBAN.valueOf( "WF", "2004 1010 0505 0001 3M02 606" ); 1574 assertEquals( iban, bban ); 1575 assertEquals( "WF", bban.getCountryCode() ); 1576 assertEquals( "20041", bban.getBankIdentifier() ); 1577 assertNull( bban.getBranchIdentifier() ); 1578 assertFalse( bban.isSepaCountry() ); 1579 1580 bban = IBAN.valueOf( "YT", "2004 1010 0505 0001 3M02 606" ); 1581 assertEquals( iban, bban ); 1582 assertEquals( "YT", bban.getCountryCode() ); 1583 assertEquals( "20041", bban.getBankIdentifier() ); 1584 assertNull( bban.getBranchIdentifier() ); 1585 assertTrue( bban.isSepaCountry() ); 1586 1587 iban = IBAN.valueOf( "GE29NB0000000101904917" ); 1588 assertEquals( "NB", iban.getBankIdentifier() ); 1589 assertNull( iban.getBranchIdentifier() ); 1590 assertFalse( iban.isSepaCountry() ); 1591 1592 iban = IBAN.valueOf( "GE29 NB00 0000 0101 9049 17" ); 1593 assertEquals( "NB", iban.getBankIdentifier() ); 1594 assertNull( iban.getBranchIdentifier() ); 1595 assertFalse( iban.isSepaCountry() ); 1596 1597 bban = IBAN.valueOf( "GE", "NB0000000101904917" ); 1598 assertEquals( iban, bban ); 1599 assertEquals( "NB", bban.getBankIdentifier() ); 1600 assertNull( bban.getBranchIdentifier() ); 1601 assertFalse( bban.isSepaCountry() ); 1602 1603 bban = IBAN.valueOf( "GE", "NB00 0000 0101 9049 17" ); 1604 assertEquals( iban, bban ); 1605 assertEquals( "NB", bban.getBankIdentifier() ); 1606 assertNull( bban.getBranchIdentifier() ); 1607 assertFalse( bban.isSepaCountry() ); 1608 1609 iban = IBAN.valueOf( "DE89370400440532013000" ); 1610 assertEquals( "37040044", iban.getBankIdentifier() ); 1611 assertNull( iban.getBranchIdentifier() ); 1612 assertTrue( iban.isSepaCountry() ); 1613 1614 iban = IBAN.valueOf( "DE89 3704 0044 0532 0130 00" ); 1615 assertEquals( "37040044", iban.getBankIdentifier() ); 1616 assertNull( iban.getBranchIdentifier() ); 1617 assertTrue( iban.isSepaCountry() ); 1618 1619 bban = IBAN.valueOf( "DE", "370400440532013000" ); 1620 assertEquals( iban, bban ); 1621 assertEquals( "37040044", bban.getBankIdentifier() ); 1622 assertNull( bban.getBranchIdentifier() ); 1623 assertTrue( bban.isSepaCountry() ); 1624 1625 bban = IBAN.valueOf( "DE", "3704 0044 0532 0130 00" ); 1626 assertEquals( iban, bban ); 1627 assertEquals( "37040044", bban.getBankIdentifier() ); 1628 assertNull( bban.getBranchIdentifier() ); 1629 assertTrue( bban.isSepaCountry() ); 1630 1631 iban = IBAN.valueOf( "GI75NWBK000000007099453" ); 1632 assertEquals( "NWBK", iban.getBankIdentifier() ); 1633 assertNull( iban.getBranchIdentifier() ); 1634 assertTrue( iban.isSepaCountry() ); 1635 1636 iban = IBAN.valueOf( "GI75 NWBK 0000 0000 7099 453" ); 1637 assertEquals( "NWBK", iban.getBankIdentifier() ); 1638 assertNull( iban.getBranchIdentifier() ); 1639 assertTrue( iban.isSepaCountry() ); 1640 1641 bban = IBAN.valueOf( "GI", "NWBK000000007099453" ); 1642 assertEquals( iban, bban ); 1643 assertEquals( "NWBK", bban.getBankIdentifier() ); 1644 assertNull( bban.getBranchIdentifier() ); 1645 assertTrue( bban.isSepaCountry() ); 1646 1647 bban = IBAN.valueOf( "GI", "NWBK 0000 0000 7099 453" ); 1648 assertEquals( iban, bban ); 1649 assertEquals( "NWBK", bban.getBankIdentifier() ); 1650 assertNull( bban.getBranchIdentifier() ); 1651 assertTrue( bban.isSepaCountry() ); 1652 1653 iban = IBAN.valueOf( "GR1601101250000000012300695" ); 1654 assertEquals( "011", iban.getBankIdentifier() ); 1655 assertEquals( "0125", iban.getBranchIdentifier() ); 1656 assertTrue( iban.isSepaCountry() ); 1657 1658 iban = IBAN.valueOf( "GR16 0110 1250 0000 0001 2300 695" ); 1659 assertEquals( "011", iban.getBankIdentifier() ); 1660 assertEquals( "0125", iban.getBranchIdentifier() ); 1661 assertTrue( iban.isSepaCountry() ); 1662 1663 bban = IBAN.valueOf( "GR", "01101250000000012300695" ); 1664 assertEquals( iban, bban ); 1665 assertEquals( "011", bban.getBankIdentifier() ); 1666 assertEquals( "0125", bban.getBranchIdentifier() ); 1667 assertTrue( bban.isSepaCountry() ); 1668 1669 bban = IBAN.valueOf( "GR", "0110 1250 0000 0001 2300 695" ); 1670 assertEquals( iban, bban ); 1671 assertEquals( "011", bban.getBankIdentifier() ); 1672 assertEquals( "0125", bban.getBranchIdentifier() ); 1673 assertTrue( bban.isSepaCountry() ); 1674 1675 iban = IBAN.valueOf( "GT82TRAJ01020000001210029690" ); 1676 assertEquals( "TRAJ", iban.getBankIdentifier() ); 1677 assertNull( iban.getBranchIdentifier() ); 1678 assertFalse( iban.isSepaCountry() ); 1679 1680 iban = IBAN.valueOf( "GT82 TRAJ 0102 0000 0012 1002 9690" ); 1681 assertEquals( "TRAJ", iban.getBankIdentifier() ); 1682 assertNull( iban.getBranchIdentifier() ); 1683 assertFalse( iban.isSepaCountry() ); 1684 1685 bban = IBAN.valueOf( "GT", "TRAJ01020000001210029690" ); 1686 assertEquals( iban, bban ); 1687 assertEquals( "TRAJ", bban.getBankIdentifier() ); 1688 assertNull( bban.getBranchIdentifier() ); 1689 assertFalse( bban.isSepaCountry() ); 1690 1691 bban = IBAN.valueOf( "GT", "TRAJ 0102 0000 0012 1002 9690" ); 1692 assertEquals( iban, bban ); 1693 assertEquals( "TRAJ", bban.getBankIdentifier() ); 1694 assertNull( bban.getBranchIdentifier() ); 1695 assertFalse( bban.isSepaCountry() ); 1696 1697 iban = IBAN.valueOf( "HU42117730161111101800000000" ); 1698 assertEquals( "117", iban.getBankIdentifier() ); 1699 assertEquals( "7301", iban.getBranchIdentifier() ); 1700 assertTrue( iban.isSepaCountry() ); 1701 1702 iban = IBAN.valueOf( "HU42 1177 3016 1111 1018 0000 0000" ); 1703 assertEquals( "117", iban.getBankIdentifier() ); 1704 assertEquals( "7301", iban.getBranchIdentifier() ); 1705 assertTrue( iban.isSepaCountry() ); 1706 1707 bban = IBAN.valueOf( "HU", "117730161111101800000000" ); 1708 assertEquals( iban, bban ); 1709 assertEquals( "117", bban.getBankIdentifier() ); 1710 assertEquals( "7301", bban.getBranchIdentifier() ); 1711 assertTrue( bban.isSepaCountry() ); 1712 1713 bban = IBAN.valueOf( "HU", "1177 3016 1111 1018 0000 0000" ); 1714 assertEquals( iban, bban ); 1715 assertEquals( "117", bban.getBankIdentifier() ); 1716 assertEquals( "7301", bban.getBranchIdentifier() ); 1717 assertTrue( bban.isSepaCountry() ); 1718 1719 iban = IBAN.valueOf( "IS140159260076545510730339" ); 1720 assertEquals( "0159", iban.getBankIdentifier() ); 1721 assertNull( iban.getBranchIdentifier() ); 1722 assertTrue( iban.isSepaCountry() ); 1723 1724 iban = IBAN.valueOf( "IS14 0159 2600 7654 5510 7303 39" ); 1725 assertEquals( "0159", iban.getBankIdentifier() ); 1726 assertNull( iban.getBranchIdentifier() ); 1727 assertTrue( iban.isSepaCountry() ); 1728 1729 bban = IBAN.valueOf( "IS", "0159260076545510730339" ); 1730 assertEquals( iban, bban ); 1731 assertEquals( "0159", bban.getBankIdentifier() ); 1732 assertNull( bban.getBranchIdentifier() ); 1733 assertTrue( bban.isSepaCountry() ); 1734 1735 bban = IBAN.valueOf( "IS", "0159 2600 7654 5510 7303 39" ); 1736 assertEquals( iban, bban ); 1737 assertEquals( "0159", bban.getBankIdentifier() ); 1738 assertNull( bban.getBranchIdentifier() ); 1739 assertTrue( bban.isSepaCountry() ); 1740 1741 iban = IBAN.valueOf( "IE29AIBK93115212345678" ); 1742 assertEquals( "AIBK", iban.getBankIdentifier() ); 1743 assertEquals( "931152", iban.getBranchIdentifier() ); 1744 assertTrue( iban.isSepaCountry() ); 1745 1746 iban = IBAN.valueOf( "IE29 AIBK 9311 5212 3456 78" ); 1747 assertEquals( "AIBK", iban.getBankIdentifier() ); 1748 assertEquals( "931152", iban.getBranchIdentifier() ); 1749 assertTrue( iban.isSepaCountry() ); 1750 1751 bban = IBAN.valueOf( "IE", "AIBK93115212345678" ); 1752 assertEquals( iban, bban ); 1753 assertEquals( "AIBK", bban.getBankIdentifier() ); 1754 assertEquals( "931152", bban.getBranchIdentifier() ); 1755 assertTrue( bban.isSepaCountry() ); 1756 1757 bban = IBAN.valueOf( "IE", "AIBK 9311 5212 3456 78" ); 1758 assertEquals( iban, bban ); 1759 assertEquals( "AIBK", bban.getBankIdentifier() ); 1760 assertEquals( "931152", bban.getBranchIdentifier() ); 1761 assertTrue( bban.isSepaCountry() ); 1762 1763 iban = IBAN.valueOf( "IL620108000000099999999" ); 1764 assertEquals( "010", iban.getBankIdentifier() ); 1765 assertEquals( "800", iban.getBranchIdentifier() ); 1766 assertFalse( iban.isSepaCountry() ); 1767 1768 iban = IBAN.valueOf( "IL62 0108 0000 0009 9999 999" ); 1769 assertEquals( "010", iban.getBankIdentifier() ); 1770 assertEquals( "800", iban.getBranchIdentifier() ); 1771 assertFalse( iban.isSepaCountry() ); 1772 1773 bban = IBAN.valueOf( "IL", "0108000000099999999" ); 1774 assertEquals( iban, bban ); 1775 assertEquals( "010", bban.getBankIdentifier() ); 1776 assertEquals( "800", bban.getBranchIdentifier() ); 1777 assertFalse( bban.isSepaCountry() ); 1778 1779 bban = IBAN.valueOf( "IL", "0108 0000 0009 9999 999" ); 1780 assertEquals( iban, bban ); 1781 assertEquals( "010", bban.getBankIdentifier() ); 1782 assertEquals( "800", bban.getBranchIdentifier() ); 1783 assertFalse( bban.isSepaCountry() ); 1784 1785 iban = IBAN.valueOf( "IT60X0542811101000000123456" ); 1786 assertEquals( "05428", iban.getBankIdentifier() ); 1787 assertEquals( "11101", iban.getBranchIdentifier() ); 1788 assertTrue( iban.isSepaCountry() ); 1789 1790 iban = IBAN.valueOf( "IT60 X054 2811 1010 0000 0123 456" ); 1791 assertEquals( "05428", iban.getBankIdentifier() ); 1792 assertEquals( "11101", iban.getBranchIdentifier() ); 1793 assertTrue( iban.isSepaCountry() ); 1794 1795 bban = IBAN.valueOf( "IT", "X0542811101000000123456" ); 1796 assertEquals( iban, bban ); 1797 assertEquals( "05428", bban.getBankIdentifier() ); 1798 assertEquals( "11101", bban.getBranchIdentifier() ); 1799 assertTrue( bban.isSepaCountry() ); 1800 1801 bban = IBAN.valueOf( "IT", "X054 2811 1010 0000 0123 456" ); 1802 assertEquals( iban, bban ); 1803 assertEquals( "05428", bban.getBankIdentifier() ); 1804 assertEquals( "11101", bban.getBranchIdentifier() ); 1805 assertTrue( bban.isSepaCountry() ); 1806 1807 iban = IBAN.valueOf( "JO94CBJO0010000000000131000302" ); 1808 assertEquals( "CBJO", iban.getBankIdentifier() ); 1809 assertNull( iban.getBranchIdentifier() ); 1810 assertFalse( iban.isSepaCountry() ); 1811 1812 iban = IBAN.valueOf( "JO94 CBJO 0010 0000 0000 0131 0003 02" ); 1813 assertEquals( "CBJO", iban.getBankIdentifier() ); 1814 assertNull( iban.getBranchIdentifier() ); 1815 assertFalse( iban.isSepaCountry() ); 1816 1817 bban = IBAN.valueOf( "JO", "CBJO0010000000000131000302" ); 1818 assertEquals( iban, bban ); 1819 assertEquals( "CBJO", iban.getBankIdentifier() ); 1820 assertNull( iban.getBranchIdentifier() ); 1821 assertFalse( iban.isSepaCountry() ); 1822 1823 bban = IBAN.valueOf( "JO", "CBJO 0010 0000 0000 0131 0003 02" ); 1824 assertEquals( iban, bban ); 1825 assertEquals( "CBJO", iban.getBankIdentifier() ); 1826 assertNull( iban.getBranchIdentifier() ); 1827 assertFalse( iban.isSepaCountry() ); 1828 1829 iban = IBAN.valueOf( "KZ86125KZT5004100100" ); 1830 assertEquals( "125", iban.getBankIdentifier() ); 1831 assertNull( iban.getBranchIdentifier() ); 1832 assertFalse( iban.isSepaCountry() ); 1833 1834 iban = IBAN.valueOf( "KZ86 125K ZT50 0410 0100" ); 1835 assertEquals( "125", iban.getBankIdentifier() ); 1836 assertNull( iban.getBranchIdentifier() ); 1837 assertFalse( iban.isSepaCountry() ); 1838 1839 bban = IBAN.valueOf( "KZ", "125KZT5004100100" ); 1840 assertEquals( iban, bban ); 1841 assertEquals( "125", bban.getBankIdentifier() ); 1842 assertNull( bban.getBranchIdentifier() ); 1843 assertFalse( bban.isSepaCountry() ); 1844 1845 bban = IBAN.valueOf( "KZ", "125K ZT50 0410 0100" ); 1846 assertEquals( iban, bban ); 1847 assertEquals( "125", bban.getBankIdentifier() ); 1848 assertNull( bban.getBranchIdentifier() ); 1849 assertFalse( bban.isSepaCountry() ); 1850 1851 iban = IBAN.valueOf( "KW81CBKU0000000000001234560101" ); 1852 assertEquals( "CBKU", iban.getBankIdentifier() ); 1853 assertNull( iban.getBranchIdentifier() ); 1854 assertFalse( iban.isSepaCountry() ); 1855 1856 iban = IBAN.valueOf( "KW81 CBKU 0000 0000 0000 1234 5601 01" ); 1857 assertEquals( "CBKU", iban.getBankIdentifier() ); 1858 assertNull( iban.getBranchIdentifier() ); 1859 assertFalse( iban.isSepaCountry() ); 1860 1861 bban = IBAN.valueOf( "KW", "CBKU0000000000001234560101" ); 1862 assertEquals( iban, bban ); 1863 assertEquals( "CBKU", bban.getBankIdentifier() ); 1864 assertNull( bban.getBranchIdentifier() ); 1865 assertFalse( bban.isSepaCountry() ); 1866 1867 bban = IBAN.valueOf( "KW", "CBKU 0000 0000 0000 1234 5601 01" ); 1868 assertEquals( iban, bban ); 1869 assertEquals( "CBKU", bban.getBankIdentifier() ); 1870 assertNull( bban.getBranchIdentifier() ); 1871 assertFalse( bban.isSepaCountry() ); 1872 1873 iban = IBAN.valueOf( "LV80BANK0000435195001" ); 1874 assertEquals( "BANK", iban.getBankIdentifier() ); 1875 assertNull( iban.getBranchIdentifier() ); 1876 assertTrue( iban.isSepaCountry() ); 1877 1878 iban = IBAN.valueOf( "LV80 BANK 0000 4351 9500 1" ); 1879 assertEquals( "BANK", iban.getBankIdentifier() ); 1880 assertNull( iban.getBranchIdentifier() ); 1881 assertTrue( iban.isSepaCountry() ); 1882 1883 bban = IBAN.valueOf( "LV", "BANK0000435195001" ); 1884 assertEquals( iban, bban ); 1885 assertEquals( "BANK", bban.getBankIdentifier() ); 1886 assertNull( bban.getBranchIdentifier() ); 1887 assertTrue( bban.isSepaCountry() ); 1888 1889 bban = IBAN.valueOf( "LV", "BANK 0000 4351 9500 1" ); 1890 assertEquals( iban, bban ); 1891 assertEquals( "BANK", bban.getBankIdentifier() ); 1892 assertNull( bban.getBranchIdentifier() ); 1893 assertTrue( bban.isSepaCountry() ); 1894 1895 iban = IBAN.valueOf( "LB62099900000001001901229114" ); 1896 assertEquals( "0999", iban.getBankIdentifier() ); 1897 assertNull( iban.getBranchIdentifier() ); 1898 assertFalse( iban.isSepaCountry() ); 1899 1900 iban = IBAN.valueOf( "LB62 0999 0000 0001 0019 0122 9114" ); 1901 assertEquals( "0999", iban.getBankIdentifier() ); 1902 assertNull( iban.getBranchIdentifier() ); 1903 assertFalse( iban.isSepaCountry() ); 1904 1905 bban = IBAN.valueOf( "LB", "099900000001001901229114" ); 1906 assertEquals( iban, bban ); 1907 assertEquals( "0999", bban.getBankIdentifier() ); 1908 assertNull( bban.getBranchIdentifier() ); 1909 assertFalse( bban.isSepaCountry() ); 1910 1911 bban = IBAN.valueOf( "LB", "0999 0000 0001 0019 0122 9114" ); 1912 assertEquals( iban, bban ); 1913 assertEquals( "0999", bban.getBankIdentifier() ); 1914 assertNull( bban.getBranchIdentifier() ); 1915 assertFalse( bban.isSepaCountry() ); 1916 1917 iban = IBAN.valueOf( "LC55HEMM000100010012001200023015" ); 1918 assertEquals( "HEMM", iban.getBankIdentifier() ); 1919 assertNull( iban.getBranchIdentifier() ); 1920 assertFalse( iban.isSepaCountry() ); 1921 1922 iban = IBAN.valueOf( "LC55 HEMM 0001 0001 0012 0012 0002 3015" ); 1923 assertEquals( "HEMM", iban.getBankIdentifier() ); 1924 assertNull( iban.getBranchIdentifier() ); 1925 assertFalse( iban.isSepaCountry() ); 1926 1927 bban = IBAN.valueOf( "LC", "HEMM000100010012001200023015" ); 1928 assertEquals( iban, bban ); 1929 assertEquals( "HEMM", bban.getBankIdentifier() ); 1930 assertNull( bban.getBranchIdentifier() ); 1931 assertFalse( bban.isSepaCountry() ); 1932 1933 bban = IBAN.valueOf( "LC", "HEMM 0001 0001 0012 0012 0002 3015" ); 1934 assertEquals( iban, bban ); 1935 assertEquals( "HEMM", bban.getBankIdentifier() ); 1936 assertNull( bban.getBranchIdentifier() ); 1937 assertFalse( bban.isSepaCountry() ); 1938 1939 iban = IBAN.valueOf( "LI21088100002324013AA" ); 1940 assertEquals( "08810", iban.getBankIdentifier() ); 1941 assertNull( iban.getBranchIdentifier() ); 1942 assertTrue( iban.isSepaCountry() ); 1943 1944 iban = IBAN.valueOf( "LI21 0881 0000 2324 013A A" ); 1945 assertEquals( "08810", iban.getBankIdentifier() ); 1946 assertNull( iban.getBranchIdentifier() ); 1947 assertTrue( iban.isSepaCountry() ); 1948 1949 bban = IBAN.valueOf( "LI", "088100002324013AA" ); 1950 assertEquals( iban, bban ); 1951 assertEquals( "08810", bban.getBankIdentifier() ); 1952 assertNull( bban.getBranchIdentifier() ); 1953 assertTrue( bban.isSepaCountry() ); 1954 1955 bban = IBAN.valueOf( "LI", "0881 0000 2324 013A A" ); 1956 assertEquals( iban, bban ); 1957 assertEquals( "08810", bban.getBankIdentifier() ); 1958 assertNull( bban.getBranchIdentifier() ); 1959 assertTrue( bban.isSepaCountry() ); 1960 1961 iban = IBAN.valueOf( "LT121000011101001000" ); 1962 assertEquals( "10000", iban.getBankIdentifier() ); 1963 assertNull( iban.getBranchIdentifier() ); 1964 assertTrue( iban.isSepaCountry() ); 1965 1966 iban = IBAN.valueOf( "LT12 1000 0111 0100 1000" ); 1967 assertEquals( "10000", iban.getBankIdentifier() ); 1968 assertNull( iban.getBranchIdentifier() ); 1969 assertTrue( iban.isSepaCountry() ); 1970 1971 bban = IBAN.valueOf( "LT", "1000011101001000" ); 1972 assertEquals( iban, bban ); 1973 assertEquals( "10000", bban.getBankIdentifier() ); 1974 assertNull( bban.getBranchIdentifier() ); 1975 assertTrue( bban.isSepaCountry() ); 1976 1977 bban = IBAN.valueOf( "LT", "1000 0111 0100 1000" ); 1978 assertEquals( iban, bban ); 1979 assertEquals( "10000", bban.getBankIdentifier() ); 1980 assertNull( bban.getBranchIdentifier() ); 1981 assertTrue( bban.isSepaCountry() ); 1982 1983 iban = IBAN.valueOf( "LU280019400644750000" ); 1984 assertEquals( "001", iban.getBankIdentifier() ); 1985 assertNull( iban.getBranchIdentifier() ); 1986 assertTrue( iban.isSepaCountry() ); 1987 1988 iban = IBAN.valueOf( "LU28 0019 4006 4475 0000" ); 1989 assertEquals( "001", iban.getBankIdentifier() ); 1990 assertNull( iban.getBranchIdentifier() ); 1991 assertTrue( iban.isSepaCountry() ); 1992 1993 bban = IBAN.valueOf( "LU", "0019400644750000" ); 1994 assertEquals( iban, bban ); 1995 assertEquals( "001", bban.getBankIdentifier() ); 1996 assertNull( bban.getBranchIdentifier() ); 1997 assertTrue( bban.isSepaCountry() ); 1998 1999 bban = IBAN.valueOf( "LU", "0019 4006 4475 0000" ); 2000 assertEquals( iban, bban ); 2001 assertEquals( "001", bban.getBankIdentifier() ); 2002 assertNull( bban.getBranchIdentifier() ); 2003 assertTrue( bban.isSepaCountry() ); 2004 2005 iban = IBAN.valueOf( "MK07250120000058984" ); 2006 assertEquals( "250", iban.getBankIdentifier() ); 2007 assertNull( iban.getBranchIdentifier() ); 2008 assertFalse( iban.isSepaCountry() ); 2009 2010 iban = IBAN.valueOf( "MK07 2501 2000 0058 984" ); 2011 assertEquals( "250", iban.getBankIdentifier() ); 2012 assertNull( iban.getBranchIdentifier() ); 2013 assertFalse( iban.isSepaCountry() ); 2014 2015 bban = IBAN.valueOf( "MK", "250120000058984" ); 2016 assertEquals( iban, bban ); 2017 assertEquals( "250", bban.getBankIdentifier() ); 2018 assertNull( bban.getBranchIdentifier() ); 2019 assertFalse( bban.isSepaCountry() ); 2020 2021 bban = IBAN.valueOf( "MK", "2501 2000 0058 984" ); 2022 assertEquals( iban, bban ); 2023 assertEquals( "250", bban.getBankIdentifier() ); 2024 assertNull( bban.getBranchIdentifier() ); 2025 assertFalse( bban.isSepaCountry() ); 2026 2027 iban = IBAN.valueOf( "MT84MALT011000012345MTLCAST001S" ); 2028 assertEquals( "MALT", iban.getBankIdentifier() ); 2029 assertEquals( "01100", iban.getBranchIdentifier() ); 2030 assertTrue( iban.isSepaCountry() ); 2031 2032 iban = IBAN.valueOf( "MT84 MALT 0110 0001 2345 MTLC AST0 01S" ); 2033 assertEquals( "MALT", iban.getBankIdentifier() ); 2034 assertEquals( "01100", iban.getBranchIdentifier() ); 2035 assertTrue( iban.isSepaCountry() ); 2036 2037 bban = IBAN.valueOf( "MT", "MALT011000012345MTLCAST001S" ); 2038 assertEquals( iban, bban ); 2039 assertEquals( "MALT", bban.getBankIdentifier() ); 2040 assertEquals( "01100", bban.getBranchIdentifier() ); 2041 assertTrue( bban.isSepaCountry() ); 2042 2043 bban = IBAN.valueOf( "MT", "MALT 0110 0001 2345 MTLC AST0 01S" ); 2044 assertEquals( iban, bban ); 2045 assertEquals( "MALT", bban.getBankIdentifier() ); 2046 assertEquals( "01100", bban.getBranchIdentifier() ); 2047 assertTrue( bban.isSepaCountry() ); 2048 2049 iban = IBAN.valueOf( "MR1300020001010000123456753" ); 2050 assertEquals( "00020", iban.getBankIdentifier() ); 2051 assertEquals( "00101", iban.getBranchIdentifier() ); 2052 assertFalse( iban.isSepaCountry() ); 2053 2054 iban = IBAN.valueOf( "MR13 0002 0001 0100 0012 3456 753" ); 2055 assertEquals( "00020", iban.getBankIdentifier() ); 2056 assertEquals( "00101", iban.getBranchIdentifier() ); 2057 assertFalse( iban.isSepaCountry() ); 2058 2059 bban = IBAN.valueOf( "MR", "00020001010000123456753" ); 2060 assertEquals( iban, bban ); 2061 assertEquals( "00020", bban.getBankIdentifier() ); 2062 assertEquals( "00101", bban.getBranchIdentifier() ); 2063 assertFalse( bban.isSepaCountry() ); 2064 2065 bban = IBAN.valueOf( "MR", "0002 0001 0100 0012 3456 753" ); 2066 assertEquals( iban, bban ); 2067 assertEquals( "00020", bban.getBankIdentifier() ); 2068 assertEquals( "00101", bban.getBranchIdentifier() ); 2069 assertFalse( bban.isSepaCountry() ); 2070 2071 iban = IBAN.valueOf( "MU17BOMM0101101030300200000MUR" ); 2072 assertEquals( "BOMM01", iban.getBankIdentifier() ); 2073 assertEquals( "01", iban.getBranchIdentifier() ); 2074 assertFalse( iban.isSepaCountry() ); 2075 2076 iban = IBAN.valueOf( "MU17 BOMM 0101 1010 3030 0200 000M UR" ); 2077 assertEquals( "BOMM01", iban.getBankIdentifier() ); 2078 assertEquals( "01", iban.getBranchIdentifier() ); 2079 assertFalse( iban.isSepaCountry() ); 2080 2081 bban = IBAN.valueOf( "MU", "BOMM0101101030300200000MUR" ); 2082 assertEquals( iban, bban ); 2083 assertEquals( "BOMM01", bban.getBankIdentifier() ); 2084 assertEquals( "01", bban.getBranchIdentifier() ); 2085 assertFalse( bban.isSepaCountry() ); 2086 2087 bban = IBAN.valueOf( "MU", "BOMM 0101 1010 3030 0200 000M UR" ); 2088 assertEquals( iban, bban ); 2089 assertEquals( "BOMM01", bban.getBankIdentifier() ); 2090 assertEquals( "01", bban.getBranchIdentifier() ); 2091 assertFalse( bban.isSepaCountry() ); 2092 2093 iban = IBAN.valueOf( "MD24AG000225100013104168" ); 2094 assertEquals( "AG", iban.getBankIdentifier() ); 2095 assertNull( iban.getBranchIdentifier() ); 2096 assertFalse( iban.isSepaCountry() ); 2097 2098 iban = IBAN.valueOf( "MD24 AG00 0225 1000 1310 4168" ); 2099 assertEquals( "AG", iban.getBankIdentifier() ); 2100 assertNull( iban.getBranchIdentifier() ); 2101 assertFalse( iban.isSepaCountry() ); 2102 2103 bban = IBAN.valueOf( "MD", "AG000225100013104168" ); 2104 assertEquals( iban, bban ); 2105 assertEquals( "AG", bban.getBankIdentifier() ); 2106 assertNull( bban.getBranchIdentifier() ); 2107 assertFalse( bban.isSepaCountry() ); 2108 2109 bban = IBAN.valueOf( "MD", "AG00 0225 1000 1310 4168" ); 2110 assertEquals( iban, bban ); 2111 assertEquals( "AG", bban.getBankIdentifier() ); 2112 assertNull( bban.getBranchIdentifier() ); 2113 assertFalse( bban.isSepaCountry() ); 2114 2115 iban = IBAN.valueOf( "MC5811222000010123456789030" ); 2116 assertEquals( "11222", iban.getBankIdentifier() ); 2117 assertEquals( "00001", iban.getBranchIdentifier() ); 2118 assertTrue( iban.isSepaCountry() ); 2119 2120 iban = IBAN.valueOf( "MC58 1122 2000 0101 2345 6789 030" ); 2121 assertEquals( "11222", iban.getBankIdentifier() ); 2122 assertEquals( "00001", iban.getBranchIdentifier() ); 2123 assertTrue( iban.isSepaCountry() ); 2124 2125 bban = IBAN.valueOf( "MC", "11222000010123456789030" ); 2126 assertEquals( iban, bban ); 2127 assertEquals( "11222", bban.getBankIdentifier() ); 2128 assertEquals( "00001", bban.getBranchIdentifier() ); 2129 assertTrue( bban.isSepaCountry() ); 2130 2131 bban = IBAN.valueOf( "MC", "1122 2000 0101 2345 6789 030" ); 2132 assertEquals( iban, bban ); 2133 assertEquals( "11222", bban.getBankIdentifier() ); 2134 assertEquals( "00001", bban.getBranchIdentifier() ); 2135 assertTrue( bban.isSepaCountry() ); 2136 2137 iban = IBAN.valueOf( "ME25505000012345678951" ); 2138 assertEquals( "505", iban.getBankIdentifier() ); 2139 assertNull( iban.getBranchIdentifier() ); 2140 assertFalse( iban.isSepaCountry() ); 2141 2142 iban = IBAN.valueOf( "ME25 5050 0001 2345 6789 51" ); 2143 assertEquals( "505", iban.getBankIdentifier() ); 2144 assertNull( iban.getBranchIdentifier() ); 2145 assertFalse( iban.isSepaCountry() ); 2146 2147 bban = IBAN.valueOf( "ME", "505000012345678951" ); 2148 assertEquals( iban, bban ); 2149 assertEquals( "505", bban.getBankIdentifier() ); 2150 assertNull( bban.getBranchIdentifier() ); 2151 assertFalse( bban.isSepaCountry() ); 2152 2153 bban = IBAN.valueOf( "ME", "5050 0001 2345 6789 51" ); 2154 assertEquals( iban, bban ); 2155 assertEquals( "505", bban.getBankIdentifier() ); 2156 assertNull( bban.getBranchIdentifier() ); 2157 assertFalse( bban.isSepaCountry() ); 2158 2159 iban = IBAN.valueOf( "NL91ABNA0417164300" ); 2160 assertEquals( "ABNA", iban.getBankIdentifier() ); 2161 assertNull( iban.getBranchIdentifier() ); 2162 assertTrue( iban.isSepaCountry() ); 2163 2164 iban = IBAN.valueOf( "NL91 ABNA 0417 1643 00" ); 2165 assertEquals( "ABNA", iban.getBankIdentifier() ); 2166 assertNull( iban.getBranchIdentifier() ); 2167 assertTrue( iban.isSepaCountry() ); 2168 2169 bban = IBAN.valueOf( "NL", "ABNA0417164300" ); 2170 assertEquals( iban, bban ); 2171 assertEquals( "ABNA", bban.getBankIdentifier() ); 2172 assertNull( bban.getBranchIdentifier() ); 2173 assertTrue( bban.isSepaCountry() ); 2174 2175 bban = IBAN.valueOf( "NL", "ABNA 0417 1643 00" ); 2176 assertEquals( iban, bban ); 2177 assertEquals( "ABNA", bban.getBankIdentifier() ); 2178 assertNull( bban.getBranchIdentifier() ); 2179 assertTrue( bban.isSepaCountry() ); 2180 2181 iban = IBAN.valueOf( "NO9386011117947" ); 2182 assertEquals( "8601", iban.getBankIdentifier() ); 2183 assertNull( iban.getBranchIdentifier() ); 2184 assertTrue( iban.isSepaCountry() ); 2185 2186 iban = IBAN.valueOf( "NO93 8601 1117 947" ); 2187 assertEquals( "8601", iban.getBankIdentifier() ); 2188 assertNull( iban.getBranchIdentifier() ); 2189 assertTrue( iban.isSepaCountry() ); 2190 2191 bban = IBAN.valueOf( "NO", "86011117947" ); 2192 assertEquals( iban, bban ); 2193 assertEquals( "8601", bban.getBankIdentifier() ); 2194 assertNull( bban.getBranchIdentifier() ); 2195 assertTrue( bban.isSepaCountry() ); 2196 2197 bban = IBAN.valueOf( "NO", "8601 1117 947" ); 2198 assertEquals( iban, bban ); 2199 assertEquals( "8601", bban.getBankIdentifier() ); 2200 assertNull( bban.getBranchIdentifier() ); 2201 assertTrue( bban.isSepaCountry() ); 2202 2203 iban = IBAN.valueOf( "PK36SCBL0000001123456702" ); 2204 assertEquals( "SCBL", iban.getBankIdentifier() ); 2205 assertNull( iban.getBranchIdentifier() ); 2206 assertFalse( iban.isSepaCountry() ); 2207 2208 iban = IBAN.valueOf( "PK36 SCBL 0000 0011 2345 6702" ); 2209 assertEquals( "SCBL", iban.getBankIdentifier() ); 2210 assertNull( iban.getBranchIdentifier() ); 2211 assertFalse( iban.isSepaCountry() ); 2212 2213 bban = IBAN.valueOf( "PK", "SCBL0000001123456702" ); 2214 assertEquals( iban, bban ); 2215 assertEquals( "SCBL", bban.getBankIdentifier() ); 2216 assertNull( bban.getBranchIdentifier() ); 2217 assertFalse( bban.isSepaCountry() ); 2218 2219 bban = IBAN.valueOf( "PK", "SCBL 0000 0011 2345 6702" ); 2220 assertEquals( iban, bban ); 2221 assertEquals( "SCBL", bban.getBankIdentifier() ); 2222 assertNull( bban.getBranchIdentifier() ); 2223 assertFalse( bban.isSepaCountry() ); 2224 2225 iban = IBAN.valueOf( "PS92PALS000000000400123456702" ); 2226 assertEquals( "PALS", iban.getBankIdentifier() ); 2227 assertNull( iban.getBranchIdentifier() ); 2228 assertFalse( iban.isSepaCountry() ); 2229 2230 iban = IBAN.valueOf( "PS92 PALS 0000 0000 0400 1234 5670 2" ); 2231 assertEquals( "PALS", iban.getBankIdentifier() ); 2232 assertNull( iban.getBranchIdentifier() ); 2233 assertFalse( iban.isSepaCountry() ); 2234 2235 bban = IBAN.valueOf( "PS", "PALS000000000400123456702" ); 2236 assertEquals( iban, bban ); 2237 assertEquals( "PALS", bban.getBankIdentifier() ); 2238 assertNull( bban.getBranchIdentifier() ); 2239 assertFalse( bban.isSepaCountry() ); 2240 2241 bban = IBAN.valueOf( "PS", "PALS 0000 0000 0400 1234 5670 2" ); 2242 assertEquals( iban, bban ); 2243 assertEquals( "PALS", bban.getBankIdentifier() ); 2244 assertNull( bban.getBranchIdentifier() ); 2245 assertFalse( bban.isSepaCountry() ); 2246 2247 iban = IBAN.valueOf( "PL61109010140000071219812874" ); 2248 assertEquals( "10901014", iban.getBankIdentifier() ); 2249 assertNull( iban.getBranchIdentifier() ); 2250 assertTrue( iban.isSepaCountry() ); 2251 2252 iban = IBAN.valueOf( "PL61 1090 1014 0000 0712 1981 2874" ); 2253 assertEquals( "10901014", iban.getBankIdentifier() ); 2254 assertNull( iban.getBranchIdentifier() ); 2255 assertTrue( iban.isSepaCountry() ); 2256 2257 bban = IBAN.valueOf( "PL", "109010140000071219812874" ); 2258 assertEquals( iban, bban ); 2259 assertEquals( "10901014", bban.getBankIdentifier() ); 2260 assertNull( bban.getBranchIdentifier() ); 2261 assertTrue( bban.isSepaCountry() ); 2262 2263 bban = IBAN.valueOf( "PL", "1090 1014 0000 0712 1981 2874" ); 2264 assertEquals( iban, bban ); 2265 assertEquals( "10901014", bban.getBankIdentifier() ); 2266 assertNull( bban.getBranchIdentifier() ); 2267 assertTrue( bban.isSepaCountry() ); 2268 2269 iban = IBAN.valueOf( "PT50000201231234567890154" ); 2270 assertEquals( "0002", iban.getBankIdentifier() ); 2271// assertEquals( "0123", iban.getBranchIdentifier() ); As of 2007.47, PT no longer provides a branch identifier. 2272 assertNull( iban.getBranchIdentifier() ); 2273 assertTrue( iban.isSepaCountry() ); 2274 2275 iban = IBAN.valueOf( "PT50 0002 0123 1234 5678 9015 4" ); 2276 assertEquals( "0002", iban.getBankIdentifier() ); 2277// assertEquals( "0123", iban.getBranchIdentifier() ); As of 2007.47, PT no longer provides a branch identifier. 2278 assertNull( iban.getBranchIdentifier() ); 2279 assertTrue( iban.isSepaCountry() ); 2280 2281 bban = IBAN.valueOf( "PT", "000201231234567890154" ); 2282 assertEquals( iban, bban ); 2283 assertEquals( "0002", bban.getBankIdentifier() ); 2284// assertEquals( "0123", bban.getBranchIdentifier() ); As of 2007.47, PT no longer provides a branch identifier. 2285 assertNull( bban.getBranchIdentifier() ); 2286 assertTrue( bban.isSepaCountry() ); 2287 2288 bban = IBAN.valueOf( "PT", "0002 0123 1234 5678 9015 4" ); 2289 assertEquals( iban, bban ); 2290 assertEquals( "0002", bban.getBankIdentifier() ); 2291// assertEquals( "0123", bban.getBranchIdentifier() ); As of 2007.47, PT no longer provides a branch identifier. 2292 assertNull( bban.getBranchIdentifier() ); 2293 assertTrue( bban.isSepaCountry() ); 2294 2295 iban = IBAN.valueOf( "QA58DOHB00001234567890ABCDEFG" ); 2296 assertEquals( "DOHB", iban.getBankIdentifier() ); 2297 assertNull( iban.getBranchIdentifier() ); 2298 assertFalse( iban.isSepaCountry() ); 2299 2300 iban = IBAN.valueOf( "QA58 DOHB 0000 1234 5678 90AB CDEF G" ); 2301 assertEquals( "DOHB", iban.getBankIdentifier() ); 2302 assertNull( iban.getBranchIdentifier() ); 2303 assertFalse( iban.isSepaCountry() ); 2304 2305 bban = IBAN.valueOf( "QA", "DOHB00001234567890ABCDEFG" ); 2306 assertEquals( iban, bban ); 2307 assertEquals( "DOHB", bban.getBankIdentifier() ); 2308 assertNull( bban.getBranchIdentifier() ); 2309 assertFalse( bban.isSepaCountry() ); 2310 2311 bban = IBAN.valueOf( "QA", "DOHB 0000 1234 5678 90AB CDEF G" ); 2312 assertEquals( iban, bban ); 2313 assertEquals( "DOHB", bban.getBankIdentifier() ); 2314 assertNull( bban.getBranchIdentifier() ); 2315 assertFalse( bban.isSepaCountry() ); 2316 2317 iban = IBAN.valueOf( "RO49AAAA1B31007593840000" ); 2318 assertEquals( "AAAA", iban.getBankIdentifier() ); 2319 assertNull( iban.getBranchIdentifier() ); 2320 assertTrue( iban.isSepaCountry() ); 2321 2322 iban = IBAN.valueOf( "RO49 AAAA 1B31 0075 9384 0000" ); 2323 assertEquals( "AAAA", iban.getBankIdentifier() ); 2324 assertNull( iban.getBranchIdentifier() ); 2325 assertTrue( iban.isSepaCountry() ); 2326 2327 bban = IBAN.valueOf( "RO", "AAAA1B31007593840000" ); 2328 assertEquals( iban, bban ); 2329 assertEquals( "AAAA", bban.getBankIdentifier() ); 2330 assertNull( bban.getBranchIdentifier() ); 2331 assertTrue( bban.isSepaCountry() ); 2332 2333 bban = IBAN.valueOf( "RO", "AAAA 1B31 0075 9384 0000" ); 2334 assertEquals( iban, bban ); 2335 assertEquals( "AAAA", bban.getBankIdentifier() ); 2336 assertNull( bban.getBranchIdentifier() ); 2337 assertTrue( bban.isSepaCountry() ); 2338 2339 iban = IBAN.valueOf( "SM86U0322509800000000270100" ); 2340 assertEquals( "03225", iban.getBankIdentifier() ); 2341 assertEquals( "09800", iban.getBranchIdentifier() ); 2342 assertTrue( iban.isSepaCountry() ); 2343 2344 iban = IBAN.valueOf( "SM86 U032 2509 8000 0000 0270 100" ); 2345 assertEquals( "03225", iban.getBankIdentifier() ); 2346 assertEquals( "09800", iban.getBranchIdentifier() ); 2347 assertTrue( iban.isSepaCountry() ); 2348 2349 bban = IBAN.valueOf( "SM", "U0322509800000000270100" ); 2350 assertEquals( iban, bban ); 2351 assertEquals( "03225", bban.getBankIdentifier() ); 2352 assertEquals( "09800", bban.getBranchIdentifier() ); 2353 assertTrue( bban.isSepaCountry() ); 2354 2355 bban = IBAN.valueOf( "SM", "U032 2509 8000 0000 0270 100" ); 2356 assertEquals( iban, bban ); 2357 assertEquals( "03225", bban.getBankIdentifier() ); 2358 assertEquals( "09800", bban.getBranchIdentifier() ); 2359 assertTrue( bban.isSepaCountry() ); 2360 2361 iban = IBAN.valueOf( "SA0380000000608010167519" ); 2362 assertEquals( "80", iban.getBankIdentifier() ); 2363 assertNull( iban.getBranchIdentifier() ); 2364 assertFalse( iban.isSepaCountry() ); 2365 2366 iban = IBAN.valueOf( "SA03 8000 0000 6080 1016 7519" ); 2367 assertEquals( "80", iban.getBankIdentifier() ); 2368 assertNull( iban.getBranchIdentifier() ); 2369 assertFalse( iban.isSepaCountry() ); 2370 2371 bban = IBAN.valueOf( "SA", "80000000608010167519" ); 2372 assertEquals( iban, bban ); 2373 assertEquals( "80", bban.getBankIdentifier() ); 2374 assertNull( bban.getBranchIdentifier() ); 2375 assertFalse( bban.isSepaCountry() ); 2376 2377 bban = IBAN.valueOf( "SA", "8000 0000 6080 1016 7519" ); 2378 assertEquals( iban, bban ); 2379 assertEquals( "80", bban.getBankIdentifier() ); 2380 assertNull( bban.getBranchIdentifier() ); 2381 assertFalse( bban.isSepaCountry() ); 2382 2383 iban = IBAN.valueOf( "RS35260005601001611379" ); 2384 assertEquals( "260", iban.getBankIdentifier() ); 2385 assertNull( iban.getBranchIdentifier() ); 2386 assertFalse( iban.isSepaCountry() ); 2387 2388 iban = IBAN.valueOf( "RS35 2600 0560 1001 6113 79" ); 2389 assertEquals( "260", iban.getBankIdentifier() ); 2390 assertNull( iban.getBranchIdentifier() ); 2391 assertFalse( iban.isSepaCountry() ); 2392 2393 bban = IBAN.valueOf( "RS", "260005601001611379" ); 2394 assertEquals( iban, bban ); 2395 assertEquals( "260", bban.getBankIdentifier() ); 2396 assertNull( bban.getBranchIdentifier() ); 2397 assertFalse( bban.isSepaCountry() ); 2398 2399 bban = IBAN.valueOf( "RS", "2600 0560 1001 6113 79" ); 2400 assertEquals( iban, bban ); 2401 assertEquals( "260", bban.getBankIdentifier() ); 2402 assertNull( bban.getBranchIdentifier() ); 2403 assertFalse( bban.isSepaCountry() ); 2404 2405 iban = IBAN.valueOf( "SK3112000000198742637541" ); 2406 assertEquals( "1200", iban.getBankIdentifier() ); 2407 assertNull( iban.getBranchIdentifier() ); 2408 assertTrue( iban.isSepaCountry() ); 2409 2410 iban = IBAN.valueOf( "SK31 1200 0000 1987 4263 7541" ); 2411 assertEquals( "1200", iban.getBankIdentifier() ); 2412 assertNull( iban.getBranchIdentifier() ); 2413 assertTrue( iban.isSepaCountry() ); 2414 2415 bban = IBAN.valueOf( "SK", "12000000198742637541" ); 2416 assertEquals( iban, bban ); 2417 assertEquals( "1200", bban.getBankIdentifier() ); 2418 assertNull( bban.getBranchIdentifier() ); 2419 assertTrue( bban.isSepaCountry() ); 2420 2421 bban = IBAN.valueOf( "SK", "1200 0000 1987 4263 7541" ); 2422 assertEquals( iban, bban ); 2423 assertEquals( "1200", bban.getBankIdentifier() ); 2424 assertNull( bban.getBranchIdentifier() ); 2425 assertTrue( bban.isSepaCountry() ); 2426 2427 iban = IBAN.valueOf( "SI56263300012039086" ); 2428 assertEquals( "26", iban.getBankIdentifier() ); 2429 assertEquals( "330", iban.getBranchIdentifier() ); 2430 assertTrue( iban.isSepaCountry() ); 2431 2432 iban = IBAN.valueOf( "SI56 2633 0001 2039 086" ); 2433 assertEquals( "26", iban.getBankIdentifier() ); 2434 assertEquals( "330", iban.getBranchIdentifier() ); 2435 assertTrue( iban.isSepaCountry() ); 2436 2437 bban = IBAN.valueOf( "SI", "263300012039086" ); 2438 assertEquals( iban, bban ); 2439 assertEquals( "26", bban.getBankIdentifier() ); 2440 assertEquals( "330", bban.getBranchIdentifier() ); 2441 assertTrue( bban.isSepaCountry() ); 2442 2443 bban = IBAN.valueOf( "SI", "2633 0001 2039 086" ); 2444 assertEquals( iban, bban ); 2445 assertEquals( "26", bban.getBankIdentifier() ); 2446 assertEquals( "330", bban.getBranchIdentifier() ); 2447 assertTrue( bban.isSepaCountry() ); 2448 2449 iban = IBAN.valueOf( "ES9121000418450200051332" ); 2450 assertEquals( "2100", iban.getBankIdentifier() ); 2451 assertEquals( "0418", iban.getBranchIdentifier() ); 2452 assertTrue( iban.isSepaCountry() ); 2453 2454 iban = IBAN.valueOf( "ES91 2100 0418 4502 0005 1332" ); 2455 assertEquals( "2100", iban.getBankIdentifier() ); 2456 assertEquals( "0418", iban.getBranchIdentifier() ); 2457 assertTrue( iban.isSepaCountry() ); 2458 2459 bban = IBAN.valueOf( "ES", "21000418450200051332" ); 2460 assertEquals( iban, bban ); 2461 assertEquals( "2100", bban.getBankIdentifier() ); 2462 assertEquals( "0418", bban.getBranchIdentifier() ); 2463 assertTrue( bban.isSepaCountry() ); 2464 2465 bban = IBAN.valueOf( "ES", "2100 0418 4502 0005 1332" ); 2466 assertEquals( iban, bban ); 2467 assertEquals( "2100", bban.getBankIdentifier() ); 2468 assertEquals( "0418", bban.getBranchIdentifier() ); 2469 assertTrue( bban.isSepaCountry() ); 2470 2471 iban = IBAN.valueOf( "SE4550000000058398257466" ); 2472 assertEquals( "500", iban.getBankIdentifier() ); 2473 assertNull( iban.getBranchIdentifier() ); 2474 assertTrue( iban.isSepaCountry() ); 2475 2476 iban = IBAN.valueOf( "SE45 5000 0000 0583 9825 7466" ); 2477 assertEquals( "500", iban.getBankIdentifier() ); 2478 assertNull( iban.getBranchIdentifier() ); 2479 assertTrue( iban.isSepaCountry() ); 2480 2481 bban = IBAN.valueOf( "SE", "50000000058398257466" ); 2482 assertEquals( iban, bban ); 2483 assertEquals( "500", bban.getBankIdentifier() ); 2484 assertNull( bban.getBranchIdentifier() ); 2485 assertTrue( bban.isSepaCountry() ); 2486 2487 bban = IBAN.valueOf( "SE", "5000 0000 0583 9825 7466" ); 2488 assertEquals( iban, bban ); 2489 assertEquals( "500", bban.getBankIdentifier() ); 2490 assertNull( bban.getBranchIdentifier() ); 2491 assertTrue( bban.isSepaCountry() ); 2492 2493 iban = IBAN.valueOf( "CH9300762011623852957" ); 2494 assertEquals( "00762", iban.getBankIdentifier() ); 2495 assertNull( iban.getBranchIdentifier() ); 2496 assertTrue( iban.isSepaCountry() ); 2497 2498 iban = IBAN.valueOf( "CH93 0076 2011 6238 5295 7" ); 2499 assertEquals( "00762", iban.getBankIdentifier() ); 2500 assertNull( iban.getBranchIdentifier() ); 2501 assertTrue( iban.isSepaCountry() ); 2502 2503 bban = IBAN.valueOf( "CH", "00762011623852957" ); 2504 assertEquals( iban, bban ); 2505 assertEquals( "00762", bban.getBankIdentifier() ); 2506 assertNull( bban.getBranchIdentifier() ); 2507 assertTrue( bban.isSepaCountry() ); 2508 2509 bban = IBAN.valueOf( "CH", "0076 2011 6238 5295 7" ); 2510 assertEquals( iban, bban ); 2511 assertEquals( "00762", bban.getBankIdentifier() ); 2512 assertNull( bban.getBranchIdentifier() ); 2513 assertTrue( bban.isSepaCountry() ); 2514 2515 iban = IBAN.valueOf( "TN5910006035183598478831" ); 2516 assertEquals( "10", iban.getBankIdentifier() ); 2517 assertEquals( "006", iban.getBranchIdentifier() ); 2518 assertFalse( iban.isSepaCountry() ); 2519 2520 iban = IBAN.valueOf( "TN59 1000 6035 1835 9847 8831" ); 2521 assertEquals( "10", iban.getBankIdentifier() ); 2522 assertEquals( "006", iban.getBranchIdentifier() ); 2523 assertFalse( iban.isSepaCountry() ); 2524 2525 bban = IBAN.valueOf( "TN", "10006035183598478831" ); 2526 assertEquals( iban, bban ); 2527 assertEquals( "10", bban.getBankIdentifier() ); 2528 assertEquals( "006", bban.getBranchIdentifier() ); 2529 assertFalse( bban.isSepaCountry() ); 2530 2531 bban = IBAN.valueOf( "TN", "1000 6035 1835 9847 8831" ); 2532 assertEquals( iban, bban ); 2533 assertEquals( "10", bban.getBankIdentifier() ); 2534 assertEquals( "006", bban.getBranchIdentifier() ); 2535 assertFalse( bban.isSepaCountry() ); 2536 2537 iban = IBAN.valueOf( "TR330006100519786457841326" ); 2538 assertEquals( "00061", iban.getBankIdentifier() ); 2539 assertNull( iban.getBranchIdentifier() ); 2540 assertFalse( iban.isSepaCountry() ); 2541 2542 iban = IBAN.valueOf( "TR33 0006 1005 1978 6457 8413 26" ); 2543 assertEquals( "00061", iban.getBankIdentifier() ); 2544 assertNull( iban.getBranchIdentifier() ); 2545 assertFalse( iban.isSepaCountry() ); 2546 2547 bban = IBAN.valueOf( "TR", "0006100519786457841326" ); 2548 assertEquals( iban, bban ); 2549 assertEquals( "00061", bban.getBankIdentifier() ); 2550 assertNull( bban.getBranchIdentifier() ); 2551 assertFalse( bban.isSepaCountry() ); 2552 2553 bban = IBAN.valueOf( "TR", "0006 1005 1978 6457 8413 26" ); 2554 assertEquals( iban, bban ); 2555 assertEquals( "00061", bban.getBankIdentifier() ); 2556 assertNull( bban.getBranchIdentifier() ); 2557 assertFalse( bban.isSepaCountry() ); 2558 2559 iban = IBAN.valueOf( "AE070331234567890123456" ); 2560 assertEquals( "033", iban.getBankIdentifier() ); 2561 assertNull( iban.getBranchIdentifier() ); 2562 assertFalse( iban.isSepaCountry() ); 2563 2564 iban = IBAN.valueOf( "AE07 0331 2345 6789 0123 456" ); 2565 assertEquals( "033", iban.getBankIdentifier() ); 2566 assertNull( iban.getBranchIdentifier() ); 2567 assertFalse( iban.isSepaCountry() ); 2568 2569 bban = IBAN.valueOf( "AE", "0331234567890123456" ); 2570 assertEquals( iban, bban ); 2571 assertEquals( "033", bban.getBankIdentifier() ); 2572 assertNull( bban.getBranchIdentifier() ); 2573 assertFalse( bban.isSepaCountry() ); 2574 2575 bban = IBAN.valueOf( "AE", "0331 2345 6789 0123 456" ); 2576 assertEquals( iban, bban ); 2577 assertEquals( "033", bban.getBankIdentifier() ); 2578 assertNull( bban.getBranchIdentifier() ); 2579 assertFalse( bban.isSepaCountry() ); 2580 2581 iban = IBAN.valueOf( "GB29NWBK60161331926819" ); 2582 assertEquals( "NWBK", iban.getBankIdentifier() ); 2583 assertEquals( "601613", iban.getBranchIdentifier() ); 2584 assertTrue( iban.isSepaCountry() ); 2585 2586 iban = IBAN.valueOf( "GB29 NWBK 6016 1331 9268 19" ); 2587 assertEquals( "NWBK", iban.getBankIdentifier() ); 2588 assertEquals( "601613", iban.getBranchIdentifier() ); 2589 assertTrue( iban.isSepaCountry() ); 2590 2591 bban = IBAN.valueOf( "GB", "NWBK60161331926819" ); 2592 assertEquals( iban, bban ); 2593 assertEquals( "NWBK", bban.getBankIdentifier() ); 2594 assertEquals( "601613", bban.getBranchIdentifier() ); 2595 assertTrue( bban.isSepaCountry() ); 2596 2597 bban = IBAN.valueOf( "GB", "NWBK 6016 1331 9268 19" ); 2598 assertEquals( iban, bban ); 2599 assertEquals( "NWBK", bban.getBankIdentifier() ); 2600 assertEquals( "601613", bban.getBranchIdentifier() ); 2601 assertTrue( bban.isSepaCountry() ); 2602 2603 bban = IBAN.valueOf( "JE", "NWBK 6016 1331 9268 19" ); 2604 assertEquals( iban, bban ); 2605 assertEquals( "JE", bban.getCountryCode() ); 2606 assertEquals( "NWBK", bban.getBankIdentifier() ); 2607 assertEquals( "601613", bban.getBranchIdentifier() ); 2608 assertFalse( bban.isSepaCountry() ); 2609 2610 bban = IBAN.valueOf( "GG", "NWBK 6016 1331 9268 19" ); 2611 assertEquals( iban, bban ); 2612 assertEquals( "GG", bban.getCountryCode() ); 2613 assertEquals( "NWBK", bban.getBankIdentifier() ); 2614 assertEquals( "601613", bban.getBranchIdentifier() ); 2615 assertFalse( bban.isSepaCountry() ); 2616 2617 bban = IBAN.valueOf( "IM", "NWBK 6016 1331 9268 19" ); 2618 assertEquals( iban, bban ); 2619 assertEquals( "IM", bban.getCountryCode() ); 2620 assertEquals( "NWBK", bban.getBankIdentifier() ); 2621 assertEquals( "601613", bban.getBranchIdentifier() ); 2622 assertFalse( bban.isSepaCountry() ); 2623 2624 iban = IBAN.valueOf( "VG96VPVG0000012345678901" ); 2625 assertEquals( "VPVG", iban.getBankIdentifier() ); 2626 assertNull( iban.getBranchIdentifier() ); 2627 assertFalse( iban.isSepaCountry() ); 2628 2629 iban = IBAN.valueOf( "VG96 VPVG 0000 0123 4567 8901" ); 2630 assertEquals( "VPVG", iban.getBankIdentifier() ); 2631 assertNull( iban.getBranchIdentifier() ); 2632 assertFalse( iban.isSepaCountry() ); 2633 2634 bban = IBAN.valueOf( "VG", "VPVG0000012345678901" ); 2635 assertEquals( iban, bban ); 2636 assertEquals( "VPVG", bban.getBankIdentifier() ); 2637 assertNull( bban.getBranchIdentifier() ); 2638 assertFalse( bban.isSepaCountry() ); 2639 2640 bban = IBAN.valueOf( "VG", "VPVG 0000 0123 4567 8901" ); 2641 assertEquals( iban, bban ); 2642 assertEquals( "VPVG", bban.getBankIdentifier() ); 2643 assertNull( bban.getBranchIdentifier() ); 2644 assertFalse( bban.isSepaCountry() ); 2645 } 2646 2647 @Test public void Serializable() throws Exception 2648 { 2649 final ObjectOutputStream out = new ObjectOutputStream( new ByteArrayOutputStream() ); 2650 out.writeObject( IBAN.valueOf( "AL47212110090000000235698741" ) ); 2651 out.close(); 2652 2653 final ObjectInputStream in = new ObjectInputStream( this.getClass().getResourceAsStream( "IBAN.ser" ) ); 2654 final IBAN iban = (IBAN) in.readObject(); 2655 in.close(); 2656 2657 System.out.println( iban.toString() ); 2658 assertEquals( IBAN.valueOf( "AL47212110090000000235698741" ), iban ); 2659 assertEquals( "AL47212110090000000235698741", iban.toString( IbanFormat.ELECTRONIC ) ); 2660 assertEquals( "AL47 2121 1009 0000 0002 3569 8741", iban.toString( IbanFormat.PRINT ) ); 2661 assertEquals( "212", iban.getBankIdentifier() ); 2662 assertEquals( "1100", iban.getBranchIdentifier() ); 2663 assertFalse( iban.isSepaCountry() ); 2664 } 2665// 2666// public static void main( final String... arguments ) throws Exception 2667// { 2668// final ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream( "IBAN.ser" ) ); 2669// out.writeObject( IBAN.valueOf( "AL47212110090000000235698741" ) ); 2670// out.close(); 2671// } 2672// 2673 // SECTION-END 2674 // SECTION-START[Constructors] 2675 // <editor-fold defaultstate="collapsed" desc=" Generated Constructors "> 2676 /** Creates a new {@code IbanTest} instance. */ 2677 @javax.annotation.Generated( value = "org.jomc.tools.SourceFileProcessor 1.9", comments = "See http://www.jomc.org/jomc/1.9/jomc-tools-1.9" ) 2678 public IbanTest() 2679 { 2680 // SECTION-START[Default Constructor] 2681 super(); 2682 // SECTION-END 2683 } 2684 // </editor-fold> 2685 // SECTION-END 2686 // SECTION-START[Dependencies] 2687 // SECTION-END 2688 // SECTION-START[Properties] 2689 // SECTION-END 2690 // SECTION-START[Messages] 2691 // SECTION-END 2692 2693}