package Ġvec . factory Ċ Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . context . Test Component Ċ import Ġvec . domain . entity . Product Ċ import Ġvec . domain . repository . Product Repository Ċ import Ġjava . math . BigDecimal Ċ Ċ @ Test Component Ċ class ĠProduct Factory Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproduct Repository : ĠProduct Repository ĊĊĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠ Ġname : ĠString Ġ= Ġ" name ", ĊĠĠĠĠĠĠĠ Ġdescription : ĠString Ġ= Ġ" description ", ĊĠĠĠĠĠĠĠ Ġamount : ĠLong Ġ= Ġ 1 0 0 0 L , ĊĠĠĠĠĠĠĠ Ġtax Rate : ĠBigDecimal Ġ= ĠBigDecimal (" 0 . 1 0 "), ĊĠĠĠĠĠĠĠ Ġtax : ĠLong Ġ= ĠBigDecimal ( amount ). multiply ( tax Rate ). to Long (), ĊĠĠĠĠĠĠĠ Ġtotal : ĠLong Ġ= Ġamount Ġ+ Ġtax , ĊĠĠĠĠĠĠĠ Ġstock : ĠLong Ġ= Ġ 1 0 L , ĊĠĠĠ Ġ): ĠProduct Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠcheckNotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Repository . save ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProduct ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġamount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtax Rate Ġ= Ġtax Rate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtax Ġ= Ġtax , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Ġ= Ġtotal , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstock Ġ= Ġstock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). block () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ