Effective Java Test Cases: Examples and Best Practices