package Ġcom . co ach . fl ame . testing . assertion . http Ċ Ċ import Ġcom . google . gson . JsonObject Ċ import Ġorg . assertj . core . api . Abstract Assert Ċ import Ġjava . util .* Ċ Ċ class ĠCalculator Assert ( calculator Response : ĠJsonObject ) Ġ: ĊĠĠĠ ĠAbstract Assert < Calculator Assert , ĠJsonObject >( ĊĠĠĠĠĠĠĠ Ġcalculator Response , ĠCalculator Assert :: class . java ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠassertThat ( calculator Response : ĠJsonObject ): ĠCalculator Assert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCalculator Assert ( calculator Response ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Result ( value : ĠDouble ): ĠCalculator Assert Ġ{ ĊĊĠĠĠĠĠĠĠ Ġis NotNull ĊĠĠĠĠĠĠĠ Ġval Ġassert j ErrorMessage Ġ= Ġ"\ n Expecting Ġresult :\ n Ġ Ġ<% s >\ n to Ġbe :\ n Ġ Ġ<% s >\ n but Ġwas :\ n Ġ Ġ<% s >" ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġactual . getAs Json Primitive (" result "). as Double ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Objects . equals ( actual Value , Ġvalue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail With Actual Expected And Message ( actual Value , Ġvalue , Ġassert j ErrorMessage , Ġactual Value , Ġvalue , Ġactual Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Unit ( unit : ĠString ): ĠCalculator Assert Ġ{ ĊĊĠĠĠĠĠĠĠ Ġis NotNull ĊĠĠĠĠĠĠĠ Ġval Ġassert j ErrorMessage Ġ= Ġ"\ n Expecting Ġunit :\ n Ġ Ġ<% s >\ n to Ġbe :\ n Ġ Ġ<% s >\ n but Ġwas :\ n Ġ Ġ<% s >" ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġactual . getAs Json Primitive (" unit "). asString ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Objects . equals ( actual Value , Ġunit )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail With Actual Expected And Message ( actual Value , Ġunit , Ġassert j ErrorMessage , Ġactual Value , Ġunit , Ġactual Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Per Unit ( per Unit : ĠString ): ĠCalculator Assert Ġ{ ĊĊĠĠĠĠĠĠĠ Ġis NotNull ĊĠĠĠĠĠĠĠ Ġval Ġassert j ErrorMessage Ġ= Ġ"\ n Expecting Ġper Unit :\ n Ġ Ġ<% s >\ n to Ġbe :\ n Ġ Ġ<% s >\ n but Ġwas :\ n Ġ Ġ<% s >" ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Value Ġ= Ġactual . getAs Json Primitive (" per Unit "). asString ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Objects . equals ( actual Value , Ġper Unit )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail With Actual Expected And Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper Unit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert j ErrorMessage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper Unit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ } Ċ