⭐ We want to test that an alarm is raised, and also implement different alarm notification methods (For example: automatically call fire department, call owner's phone, and trigger control unit alarm siren). Plan and implement how you can extract the announcement logic and:
- Trigger many different announcement strategies
- Test that the different strategies was triggered
Hint: Dependency Inversion Principle and the Strategy Design Pattern
Take a look at the Strategy design pattern. This is a intermediate topic so ask if you're stuck.