package Ġcom . stripe . android . cards Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . stripe . android . Card Number Fixtures Ċ import Ġcom . stripe . android . model . Bin Fixtures Ċ import Ġkotlin . test . Test Ċ Ċ class ĠCard Number Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 6 Ġwith Ġempty Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" ĠĠ Ġ"). get Formatted ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 6 Ġwith Ġ 3 Ġdigit Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 4 Ġ 2 Ġ 4 "). get Formatted ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 4 2 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 6 Ġwith Ġfull Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 4 2 4 2 4 2 4 2 Ġ 4 2 4 2 4 2 4 2 "). get Formatted ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 6 Ġand Ġextr aneous Ġdigits Ġshould Ġformat Ġand Ġremove Ġextr aneous Ġdigits `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 4 2 4 2 4 2 4 2 Ġ 4 2 4 2 4 2 4 2 Ġ 4 2 4 2 4 "). get Formatted ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 9 Ġwith Ġpartial Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 6 2 1 6 8 2 8 0 5 0 "). get Formatted ( 1 9 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 6 2 1 6 Ġ 8 2 8 0 Ġ 5 0 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 9 Ġwith Ġfull Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 6 2 1 6 8 2 8 0 5 0 1 2 3 4 5 6 7 8 9 "). get Formatted ( 1 9 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 6 2 1 6 Ġ 8 2 8 0 Ġ 5 0 1 2 Ġ 3 4 5 6 Ġ 7 8 9 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 4 Ġwith Ġpartial Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 3 6 2 2 7 2 0 "). get Formatted ( 1 4 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 3 6 2 2 Ġ 7 2 0 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Formatted () Ġwith Ġpan Length Ġ 1 4 Ġwith Ġfull Ġnumber `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 3 6 2 2 7 2 0 6 2 7 1 6 6 7 "). get Formatted ( 1 4 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo (" 3 6 2 2 Ġ 7 2 0 6 2 7 Ġ 1 6 6 7 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` bin Ġwith Ġempty Ġnumber Ġshould Ġreturn Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" ĠĠ Ġ"). bin ĊĠĠĠĠĠĠĠ Ġ). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` bin Ġwith Ġ 5 Ġdigits Ġshould Ġreturn Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 1 2 Ġ 3 Ġ 4 Ġ 5 "). bin ĊĠĠĠĠĠĠĠ Ġ). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` bin Ġwith Ġ 6 Ġdigits Ġshould Ġreturn Ġbin `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 1 2 Ġ 3 Ġ 4 Ġ 5 6 "). bin ĊĠĠĠĠĠĠĠ Ġ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBin . create (" 1 2 3 4 5 6 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` bin Ġwith Ġfull Ġnumber Ġshould Ġreturn Ġbin `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated ( Card Number Fixtures . VIS A _ WITH _ SP ACES ). bin ĊĠĠĠĠĠĠĠ Ġ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBin Fixtures . VIS A ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` validate () Ġwith Ġvalid Ġcard Ġnumber Ġshould Ġreturn ĠValid ated Ġobject `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. validate ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Validated ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` validate () Ġwith Ġinvalid ĠLu hn Ġcard Ġnumber Ġshould Ġreturn Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. validate ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġ). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` validate () Ġwith Ġvalid ĠLu hn Ġcard Ġnumber Ġbut Ġincorrect Ġlength Ġshould Ġreturn Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated (" 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 Ġ 4 2 4 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. validate ( 1 9 ) ĊĠĠĠĠĠĠĠ Ġ). isNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` validate () Ġwith Ġempty Ġnumber Ġshould Ġreturn Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCard Number . Un validated ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. validate ( 0 ) ĊĠĠĠĠĠĠĠ Ġ). isNull () ĊĠĠĠ Ġ} Ċ } Ċ