JaBudget Domain definiert die Business Domain.
Ein Account wird anhand seiner id identifiziert. Ein Account hat eine Währung (noch nicht modelliert). Ein Account hat zu einem Datum einen Stand. (noch nicht modelliert). Anhand von Datum und Stand kann mit den Entries der Stand zu einem anderen Datum ermittelt werden. Das Datum ist auf Mitternacht bezogen. Alle Buchung des gleichen Datums erfolgen nach dem Stand des Kontos.
Ein Entry ist eine Buchung auf einem Account. (Zu einem Entry kann es einen "gegen Entry" geben, der auf dem "gegen Account" liegt. Entry und gegen Entry sind unterschiedliche Entitäten (haben unterschiedliche id und AccountId) Eine Beziehung zwischen beiden ist aktuell nicht vorgesehen.) Ein Entry hat einen für das Konto eindeutigen Code (wie wird die Eindeutigkeit sicher gestellt?). Ein Entry hat einen Betrag, der positiv oder negativ sein kann. Der Betrag hat 2? Nachkommastellen. Die Währung des Betrags eines Entries wird vom Account abegleitet (noch nicht modelliert) Ein Entry hat eine Beschreibung (subject). Ein Entry hat ein Valuta-Datum. Ein Entry hat ein Buchungs-Datum. Ein Entry hat keinen Kontostand!
Neben den regulären Unit-Tests in src/test/java gibt es Test-Fixtures, die in src/test/fixtures liegen. Diese enthalten Klassen zur vereinfachten Erzeugung von Testdaten.
Damit auch abhängige Projekte diese Fixtures nutzen können wird aus diesen über ein Assembly eine jar mit dem classifier fixtures erstellt.
Die Fixtures liegen alle unter fixtures unterhalb des Basispackages, damit es nicht zu Paket-Überschneidungen kommen kann.