package Ġio . github . to mpl um . a oc . airport . passport Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġassert k . assertions . isFalse Ċ import Ġassert k . assertions . isTrue Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Empty Source Ċ import Ġorg . junit . jupiter . params . provider . Value Source Ċ Ċ class ĠPass port Field Test Ġ{ ĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠField Validity Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠB irth Year Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 2 0 0 2 ", Ġ" 1 9 2 0 ", Ġ" 1 9 7 0 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . B IR TH _ YEAR . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 2 0 0 3 ", Ġ" 1 9 1 9 ", Ġ" 2 0 4 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . B IR TH _ YEAR . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠIssue Year Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 2 0 1 0 ", Ġ" 2 0 2 0 ", Ġ" 2 0 1 5 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . ISSUE _ YEAR . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 2 0 0 9 ", Ġ" 2 0 2 1 ", Ġ" 2 1 0 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . ISSUE _ YEAR . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠExp iration Year Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 2 0 2 0 ", Ġ" 2 0 3 0 ", Ġ" 2 0 2 5 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . EXPI RATION _ YEAR . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 2 0 1 9 ", Ġ" 2 0 3 1 ", Ġ" 2 0 2 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . EXPI RATION _ YEAR . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠHeight Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 1 5 0 cm ", Ġ" 1 6 7 cm ", Ġ" 1 9 3 cm ", Ġ" 5 9 in ", Ġ" 6 5 in ", Ġ" 7 6 in "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . HEIGHT . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 1 4 9 cm ", Ġ" 1 9 4 cm ", Ġ" 1 7 6 ", Ġ" 5 8 in ", Ġ" 7 7 in ", Ġ" 6 5 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . HEIGHT . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠH air Colour Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" # 0 0 0 0 0 0 ", Ġ"# ffffff ", Ġ"# f 1 f 1 f 1 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . HA IR _ CO LO UR . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" # ", Ġ" ffffff ", Ġ"# 1 f 1 f 1 ", Ġ"# 1 2 3 4 5 g ", Ġ"# 1 - 3 a 5 b "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . HA IR _ CO LO UR . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠE ye Colour Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" amb ", Ġ" bl u ", Ġ" br n ", Ġ" gry ", Ġ" gr n ", Ġ" hz l ", Ġ" oth "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . EY E _ CO LO UR . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" gh j ", Ġ" amb d ", Ġ" wat "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . EY E _ CO LO UR . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠPass port ID Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 0 0 0 0 0 0 0 0 1 ", Ġ" 1 2 3 4 5 6 7 8 9 ", Ġ" 0 1 0 1 0 1 0 1 0 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . PAS SP ORT _ ID . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 1 2 3 4 5 6 7 8 ", Ġ" 1 2 3 4 5 6 7 8 f ", Ġ" 1 2 3 4 5 6 7 8 9 0 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġinvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . PAS SP ORT _ ID . isValid ( value )). isFalse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Nested ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠCountry ID Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" 1 0 0 "," 5 6 2 3 4 "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġvalid ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . COUNTRY _ ID . isValid ( value )). isTrue () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġinner Ġclass ĠFrom String Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġbirth Year () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" by r ")). isEqualTo ( Passport Field . B IR TH _ YEAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġissue Year () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" i yr ")). isEqualTo ( Passport Field . ISSUE _ YEAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġexpiration Year () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" ey r ")). isEqualTo ( Passport Field . EXPI RATION _ YEAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġheight () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" h gt ")). isEqualTo ( Passport Field . HEIGHT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġhair Colour () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" h cl ")). isEqualTo ( Passport Field . HA IR _ CO LO UR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġeye Colour () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" e cl ")). isEqualTo ( Passport Field . EY E _ CO LO UR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġpassport Id () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" pid ")). isEqualTo ( Passport Field . PAS SP ORT _ ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġcountry Id () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( Passport Field . fromString (" cid ")). isEqualTo ( Passport Field . COUNTRY _ ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ĊĠĠĠĠĠĠĠ Ġ@ Empty Source ĊĠĠĠĠĠĠĠ Ġ@ Value Source ( strings Ġ= Ġ[" is d ", Ġ" df g ", Ġ" p 1 d "]) ĊĠĠĠĠĠĠĠ Ġfun Ġinvalid String ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠassertThrows < IllegalArgumentException > Ġ{ ĠPass port Field . fromString ( value ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e . message ). isEqualTo (" Invalid ĠField ĠCode : Ġ$ value ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ