Given that System.Windows.Input.ICommand as 2 primary methods:
interface ICommand {
void Execute(object parameters);
bool CanExecute(object parameters);
...
}
I expect CanExecute(...) to be called in the Command-supported frameworks before Execute(...) is called.
Internally to my Command Implementation, however, is there any reason to add the CanExecute(...) call inside my Execute(...) implementation?
e.g.:
public void Execute(object parameters){
if(!CanExecute(parameters)) throw new ApplicationException("...");
/** Execute implementation **/
}
This becomes relevant in my testing, as I may mock out some interfaces to support CanExecute, and have to do the same mocks when testing Execute.
Any design thoughts on this?