package Ġlang . tax i . types Ċ Ċ import Ġcom . w inter be . ex pe kt . should Ċ import Ġlang . tax i . sources . Source Code Ċ import Ġorg . junit . Test Ċ Ċ class ĠEnum Type Test Ġ{ ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġlookup ByName Or Value WithName () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has (" USD "). should . be .` true ` ĊĠĠĠĠĠ Ġenum Type . of (" USD "). name . should . equal (" USD ") ĊĠĠĠĠĠ Ġenum Type . of (" USD "). value . should . equal (" US ĠD ollar s ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġlookup ByName Or Value WithName No Value () Ġ{ ĊĠĠĠĠĠ Ġ// ĠEnum Ġhas Ġno Ġvalue , Ġwith Ġsh uld Ġdefault Ġto Ġname ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value ( name Ġ= Ġ" USD ", Ġqualified Name Ġ= Ġ" Currency . USD ", Ġannotations Ġ= Ġempty List (), Ġsyn onyms Ġ= Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value ( name Ġ= Ġ" EUR ", Ġqualified Name Ġ= Ġ" Currency . EUR ", Ġannotations Ġ= Ġempty List (), Ġsyn onyms Ġ= Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has (" USD "). should . be .` true ` ĊĠĠĠĠĠ Ġenum Type . of (" USD "). name . should . equal (" USD ") ĊĠĠĠĠĠ Ġenum Type . of (" USD "). value . should . equal (" USD ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġlookup ByName Or Value WithValue () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has (" US ĠD ollar s "). should . be .` true ` ĊĠĠĠĠĠ Ġenum Type . of (" US ĠD ollar s "). name . should . equal (" USD ") ĊĠĠĠĠĠ Ġenum Type . of (" US ĠD ollar s "). value . should . equal (" US ĠD ollar s ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ( expected Ġ= ĠNoSuch ElementException :: class ) ĊĠĠ Ġfun Ġlookup ByName Or Value Does nt Exist () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has (" GBP "). should . be .` false ` ĊĠĠĠĠĠ Ġenum Type . of (" GBP ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġlookup ByName () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has Name (" USD "). should . be .` true ` ĊĠĠĠĠĠ Ġenum Type . of Name (" USD "). name . should . equal (" USD ") ĊĠĠĠĠĠ Ġenum Type . of Name (" USD "). value . should . equal (" US ĠD ollar s ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ( expected Ġ= ĠNoSuch ElementException :: class ) ĊĠĠ Ġfun Ġlookup ByName WithValue () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has Name (" US ĠD ollar s "). should . be .` false ` ĊĠĠĠĠĠ Ġenum Type . of Name (" US ĠD ollar s ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ĊĠĠ Ġfun Ġlookup By Value () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . hasValue (" E uro "). should . be .` true ` ĊĠĠĠĠĠ Ġenum Type . of Value (" E uro "). name . should . equal (" EUR ") ĊĠĠĠĠĠ Ġenum Type . of Value (" E uro "). value . should . equal (" E uro ") ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Test ( expected Ġ= ĠNoSuch ElementException :: class ) ĊĠĠ Ġfun Ġlookup By Value WithName () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . hasValue (" EUR "). should . be .` false ` ĊĠĠĠĠĠ Ġenum Type . of Value (" EUR ") ĊĠĠ Ġ} ĊĊĠĠ Ġfun Ġlookup With Null s () Ġ{ ĊĠĠĠĠĠ Ġval Ġenum Type Ġ= Ġenum Type ( listOf ( ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" USD ", Ġ" US ĠD ollar s ", Ġ" Currency . USD ", Ġempty List (), Ġempty List ()), ĊĠĠĠĠĠĠĠĠ ĠEnum Value (" EUR ", Ġ" E uro ", Ġ" Currency . EUR ", Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠ Ġenum Type . has ( null ). should . be .` false ` ĊĠĠĠĠĠ Ġenum Type . hasValue ( null ). should . be .` false ` ĊĠĠĠĠĠ Ġenum Type . has Name ( null ). should . be .` false ` ĊĠĠ Ġ} ĊĊĠĠ Ġprivate Ġfun Ġenum Type ( values : ĠList < EnumValue >): ĠEnum Type Ġ{ ĊĠĠĠĠĠ Ġval Ġdefinition Ġ= ĠEnum Definition ( values Ġ= Ġvalues , Ġcompilation Unit Ġ= ĠCompilation Unit ( null , ĠSource Code ("", Ġ"") ), Ġbase Primitive Ġ= ĠPrimitive Type . STRING ) ĊĠĠĠĠĠ Ġreturn ĠEnum Type (" Currency ", Ġdefinition ) ĊĠĠ Ġ} ĊĊ Ċ } Ċ