public async Task<bool> Close(ActorSystem context)
{
//Test run has already been closed or hasn't started
if (!IsOpen || IsClosed) return await Task.FromResult(false);
IsOpen = false;
IsClosed = true;
//Signal that the test run has ended
return await MessageSinkActorRef.Ask<MessageSinkActor.SinkCanBeTerminated>(new EndTestRun())
.ContinueWith(tr => MessageSinkActorRef.GracefulStop(TimeSpan.FromSeconds(2)),
TaskContinuationOptions.ExecuteSynchronously).Unwrap();
}