package Ġnl . dev ha an . kotlin po et dsl . variable Ċ Ċ import Ġcom . squareup . kotlin po et .* Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . core . spec . style . String Spec Ċ import Ġnl . dev ha an . kotlin po et dsl .* Ċ import Ġnl . dev ha an . kotlin po et dsl . classes . clazz Ċ import Ġnl . dev ha an . kotlin po et dsl . classes . createClass Ċ import Ġnl . dev ha an . kotlin po et dsl . functions . create Fun Ċ import Ġnl . dev ha an . kotlin po et dsl . functions . func Ċ Ċ class ĠVariable Usage Test : ĠString Spec ({ ĊĠĠĠ Ġ" var arg Ġclazz "{ ĊĠĠĠĠĠĠĠ Ġcreate Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclazz (" Clazz ", Ġ" a ". var arg < String >(" array Of (\" hi \") ")) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĠshouldBe ĠType Spec . class Builder (" Clazz ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. primary Constructor ( Fun Spec . constructor Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameter ( Parameter Spec . builder (" a ", ĠString :: class , ĠK Modifier . VAR ARG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. defaultValue (" array Of (\" hi \") ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" var arg Val Ġclazz "{ ĊĠĠĠĠĠĠĠ Ġcreate Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclazz (" Clazz ", Ġ" a ". var arg Val < String >(" array Of (\" hi \") ")) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĠshouldBe ĠType Spec . class Builder (" Clazz "). primary Constructor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFun Spec . constructor Builder (). add Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter Spec . builder (" a ", ĠString :: class , ĠK Modifier . VAR ARG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. defaultValue (" array Of (\" hi \") ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġ). addProperty ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Spec . builder (" a ", ĠString :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. initializer (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. mutable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" var arg Var Ġclazz "{ ĊĠĠĠĠĠĠĠ Ġcreate Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclazz (" Clazz ", Ġ" a ". var arg Var < String >(" array Of (\" hi \") ")) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĠshouldBe ĠType Spec . class Builder (" Clazz "). primary Constructor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFun Spec . constructor Builder (). add Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter Spec . builder (" a ", ĠString :: class , ĠK Modifier . VAR ARG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. defaultValue (" array Of (\" hi \") ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠ Ġ). addProperty ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty Spec . builder (" a ", ĠString :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. initializer (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. mutable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ" var arg Ġfun "{ ĊĠĠĠĠĠĠĠ Ġcreate Fun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfunc (" func ", Ġ" a ". var arg < String >(" array Of (\" hi \") ")) {} ĊĠĠĠĠĠĠĠ Ġ} ĠshouldBe ĠFun Spec . builder (" func ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParameter Spec . builder (" a ", ĠString :: class , ĠK Modifier . VAR ARG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. defaultValue (" array Of (\" hi \") ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠ Ġ} Ċ })