package Ġcom . ur am n mo il . econom y core Ċ Ċ import Ġcom . ur am no il . econom y core . repository . Account Repository Ċ import Ġcom . ur am no il . econom y core . repository . dao . Account Exception Ċ import Ġcom . ur am no il . econom y core . repository . dao . Account Mock Dao Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ Ċ class ĠAccount Re post i roy Test Ġ{ ĊĠĠĠ Ġval Ġc Repo Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠAccount Repository ( Account Mock Dao ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Create Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= Ġc Repo ĊĊĠĠĠĠĠĠĠ Ġval Ġsample Ġ= Ġrepo . new ( name Ġ= Ġ" sample ") ĊĠĠĠĠĠĠĠ Ġassert ( sample . name Ġ== Ġ" sample ") ĊĠĠĠĠĠĠĠ Ġassert ( sample . id Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġassert ( sample . money Ġ== Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Duplicate Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= Ġc Repo ĊĊĠĠĠĠĠĠĠ Ġrepo . new (" sample ") ĊĠĠĠĠĠĠĠ ĠassertThrows < Account Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo . new ( name Ġ=" sample ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Store Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= Ġc Repo ĊĠĠĠĠĠĠĠ Ġval Ġsample 1 Ġ= Ġrepo . new ( name Ġ= Ġ" sample ") ĊĠĠĠĠĠĠĠ Ġrepo . store ( sample 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġsample 2 Ġ= Ġrepo . get (" sample ") Ġ?: Ġthrow ĠAccount Exception () ĊĠĠĠĠĠĠĠ Ġassert ( sample 2 . name Ġ== Ġ" sample ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Add Money () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= Ġc Repo ĊĠĠĠĠĠĠĠ Ġval Ġsample 1 Ġ= Ġrepo . new ( name Ġ= Ġ" sample ") ĊĠĠĠĠĠĠĠ Ġsample 1 . money Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġsample 2 Ġ= Ġrepo . get (" sample ") Ġ?: Ġthrow ĠAccount Exception () ĊĠĠĠĠĠĠĠ Ġassert ( sample 2 . money Ġ== Ġ 1 0 0 ) ĊĠĠĠ Ġ} Ċ }