Test coverage of the invoke method.

Refactor some buggy behavior too:

Disabled the help logging. First of all this method will probably never be called because options are inside `options.options`, so it didn't check at the right place. And overalls, it is better the system throw an error rather than print the generator help IMO. Cleaner and it'll stop the process.

`sourceRoot()` is never undefined or empty, so that line would never been called.