public async Task DeleteLaunchNoLaunchAsync()
        {
            _gameletClient.DeleteGameLaunchAsync(_gameLaunchName, _action).Throws(
                new CloudException(
                    "error", new RpcException(new Status(StatusCode.NotFound, "not found"))));

            DeleteLaunchResult result =
                await _target.DeleteLaunchAsync(_gameLaunchName, _cancelable, _action);

            Assert.That(result.IsSuccessful, Is.EqualTo(true));
            Assert.That(result.DeletedLaunch, Is.Null);
            await AssertActionNotRecordedAsync();
        }
        public async Task <DeleteLaunchResult> DeleteLaunchAsync(
            string gameLaunchName, ICancelable task, IAction action)
        {
            try
            {
                await _gameletClient.DeleteGameLaunchAsync(gameLaunchName, action);
            }
            catch (CloudException e) when((e.InnerException as RpcException)?.StatusCode ==
                                          StatusCode.NotFound)
            {
                // There is no launch with the specified name.
                return(DeleteLaunchResult.Success(null));
            }

            return(await WaitUntilGameLaunchEndedAsync(gameLaunchName, task, action));
        }