This one I do think needs to stay in the dialog. The unit tests shouldn't know about the internal state machine--that's an implementation detail that could potentially change (for example, at one point we had talked about the state machine possibly living in the installer facade object instead of in the dialog itself).