In this repository you'll find three payment gateway implementation with a bunch of code smells. They could be code you inherited from a legacy code-base. Now you want to write unit tests for them, and that is harder than it needs to be. The gateways fail to follow at least two of the SOLID principles.
- Start writing unit tests to cover the existing edge cases
- Refactor the classes if needed
- Take note of the code smells
The following table is a quick reminder about the solid principles.
Single-responsibility principle | Open–closed principle | Liskov substitution principle | Interface segregation principle | Dependency inversion principle |
---|---|---|---|---|