@startuml

'skinparam handwritten true

skinparam monochrome true
skinparam packageStyle rect
skinparam defaultFontName FG Virgil
skinparam shadowing false
skinparam linetype ortho

hide footbox


participant ":Test" as Test
participant ":GetTransactionsOfAccountsWithinPeriodController" as Ctrl
participant "group:Group" as Group
participant "accounts:Accounts" as Accounts
participant "ledger:Ledger" as Ledger


Test -> Ctrl : getTransactionsOfAccountWithinPeriod\n(group, account, initialDateTime,\n finalDateTime)
Ctrl -> Group: getTransactionsOfAccountWithinPeriod\n(account, initialDateTime, finalDateTime)
Group -> Accounts : hasAccount()
Group <-- Accounts : boolean
Group -> Ledger : getTransactionsOfAccountWithinPeriod\n(account, initialDateTime, finalDateTime)
ref over Ledger : Execução \ngetTransactionsOfAccountWithinPeriod

Group <-- Ledger : result
Ctrl <-- Group : result
Test <-- Ctrl : result
Test -->Test : assertEquals (expected, result)

@enduml