TestInProgressStrategy
to handle a request to start a new test. An implementation that allows the new test to start must make sure the existing test is stopped first. An implementation that does not allow the new test to start has two options for how to communicate this back to the caller: either by throwing a DebugSession
, or by notifying the requester by calling its {@link SessionRequester#requestDenied() requestDenied} method. If the latter, some form ofuser feedback is recommended, e.g. in the form of a message dialog.
@param service the DebugService
that is asked to run the test. service.isDebugging()
is guaranteed to return true
if this method is invoked.
@param testProviderId the ID of the test provider
@param debugeeId the ID of the project item being tested
@param controller the DebugController
though which the test process can be updated (stopped, resumed, etc)
@param requester a callback to be notified on the outcome of the request
@throws DebuggingException if this strategy does not allow the new test to start, but does not have the means to report this itself (e.g. because it is not allowed to use UI components)
|
|
|
|