Business logic utama dari aplikasi ini adalah pembuatan jurnal untuk setiap transaksi yang terjadi. Tipe transaksi menentukan akun-akun yang terlibat berikut posisinya (debit/kredit). Maka dari itu, business logic pembuatan jurnal merupakan responsibility dari class TransactionType.
Method addEntry kita tambahkan ke class Journal untuk mengenkapsulasi fungsi penambahan sebuah objek JournalEntry baru ke sebuah objek Journal.
Selanjutkan kita test logic yang baru kita tambahkan. Untuk itu, kita buat sebuah unit test dengan nama TestTransactions di direktori src/test/java di package com.bustanil.easyaccounting.model dengan nama test method yaitu testAddEquity. Salah satu skenario yang akan kita uji adalah penambahan modal dalam bentuk tunai oleh pemilik perusahaan. Untuk skenario ini, kita siapkan dua akun yang terlibat yaitu akun kas dan akun modal, masing-masing dengan kode “CSH001” di posisi debit dan “EQU001” di posisi kredit. Di akhir test method kita cek apakah sebuah objek Journal berhasil dibuat dengan dua buah entry.
Ada dua method baru yang ditambahkan untuk mempermudah proses testing, yaitu getEntryByAccountCode dan isBalance
Method getEntryByAccountCode di class Journal digunakan untuk mencari entri jurnal berdasarkan kode akun tertentu. Method isBalance digunakan untuk memeriksa apakah jumlah sisi debit dan sisi kredit dari sebuah jurnal adalah sama.
Berikut ini adalah class Journal yang sudah diupdate: