summaryrefslogtreecommitdiffstats
path: root/test-data
Commit message (Collapse)AuthorAgeFilesLines
* ex-2: add invalid-input fixtures and wire ui-desktop to the serviceKostya2026-09-0610-0/+493
| | | | | | | | | | | | | | | | | | | | | The ex-2 loader has to reject documents that are schema-valid but logically broken, and so far only error-2.xml and error-3.xml exercised that path. Add one fixture per validation rule under test-data/ex-2/invalid, each a copy of small.xml with a single defect described in a leading comment: a non-.xml extension, a duplicate event id, commission outside 0..90 on either side, a duplicate user name, zero or negative initial cash, a market maker referencing an unknown event, and an event with no market maker or with two. Teach LedgerMapper to map individual LedgerEntry records to LedgerEntryDTO, renaming id to seq and time to at and rendering the timestamp through InstantOptions.humanize, so callers can show a ledger history rather than only the account summary. Make ui-desktop depend on api and service in the build tooling and in its Eclipse classpath, since the desktop UI now talks to the service layer directly, and put lib/openjfx on java.library.path for the test run so tests touching JavaFX can load its native libraries.
* catalog: add generated v3 JAXB binding and ex-2 test dataKostya2026-09-064-0/+248
| | | | | | | | | | | | | | | | | | | | The ex-2 schema describes a nested Guess-Market/GM-events document in which every event carries its pricing mechanism inline, as either a GM-LMSR element holding the liquidity parameter b or a GM-order-book element holding the allow-mint, initial and d attributes, instead of naming a mechanism and passing its parameters separately. Add the xjc-generated classes for that schema under catalog.model.v3, along with the fixtures the loader will be tested against: small.xml with two events, one per mechanism, multiple.xml with four, and two negative cases -- error-2.xml, where a market maker is funded with zero initial cash, and error-3.xml, where a market maker points at event id 12, which no event declares -- so the cross-reference and funding checks have something to reject. The binding covers the GM-events subtree only. The GM-users half of the document and the per-event id element are not bound yet, so nothing reads these classes so far.
* Implement in-memory repositories, XML load validation, and menu exit/list ↵Kostya2026-08-141-0/+47
commands - Add generic Repository<T> interface; EventRepository/UserRepository extend it - Implement InMemoryEventRepository/InMemoryUserRepository backed by ArrayList - Rename XMLLoader to XMLLoaderV1, add LoadValidator and mapper/v2 package - Add OrderBookTradingMechanism - Add User(String, int) convenience constructor - Add ListEventsMenuCommand and ExitMenuCommand, isExit() on MenuCommand - Menu now sizes selection range by max command index and exits on isExit() - LoadFileMenuCommand reports validation issues on failed loads - Untrack test-data/ and config.properties from .gitignore