Make It Work for None, Then One
The fully implemented LightScheduler will have to manage a collection of scheduled items. Starting with a test case that involves many scheduled events makes for too much code. A good way to attack and conquer this problem is to start with the cases of no scheduled items and then one scheduled item, saving the many case for later. This is a common approach for engineering collection behavior using TDD.
The do nothing tests provides the shortest path to a passing test. All that is needed is the interface definitions for the production code calls. Don’t worry that it seems that nothing is being tested. The objective here is to get these boundary tests right. Later when the full implementation is in place, these ...