Implemented Single threaded Dispatcher,wrote test cases

I've implemented single thread dispatcher. If this is correct then I'll update it to concurrent version which I've started. I just wanted to confirm my approach.
It is not a good practice to hide your external dependencies (classes that you depend upon).
You want to publish your dependencies explicitly via your public interface and want to clearly indicate which are mandatory vs optional via proper dependency setup patterns (constructor injection vs property injection).

If I were to give you a contrived example, imagine a car where the engine and gear box are sealed inside the car chassis and no one can access it. How would you test this car? How would you repair this car ? How would you replace the engine or gearbox if needed? 
The same applies here.

Let me know if you need more clarification on this.