without either a UI or a database so you can run automated regression-tests against the application, work when the database becomes unavailable, and link applications together without any user involvement.” Alistair Cockburn: Hexagonal architecture
by the application - Adapters: are the implementation of the ports (abstraction) that connect the application with the outside world. The outside world is anything that is not really important to solve the problem we trying to solve: Database, UI (Delivery mechanism), frameworks (Mobile, web, … etc)
if: - It talks to a database - It communicates across the network - It touches the file system - You have to do things to your environment to run it (eg, change config files, comment line) - Tests that do this are integration tests.
category of products has its own tax rate (.17) - The tax calculation is based on simple formula: Product base cost + (product base cost * category tax rate) Source Code