public async Task <ChangeSignatureResult> ChangeSignatureAsync()
        {
            var context = await ChangeSignatureService.GetChangeSignatureContextAsync(InvocationDocument, _testDocument.CursorPosition.Value, restrictToDeclarations : false, Workspace.GlobalOptions.CreateProvider(), CancellationToken.None).ConfigureAwait(false);

            var options = AbstractChangeSignatureService.GetChangeSignatureOptions(context);

            return(await ChangeSignatureService.ChangeSignatureWithContextAsync(context, options, CancellationToken.None));
        }
        public ChangeSignatureTestState(TestWorkspace workspace)
        {
            Workspace     = workspace;
            _testDocument = Workspace.Documents.SingleOrDefault(d => d.CursorPosition.HasValue);

            if (_testDocument == null)
            {
                throw new ArgumentException("markup does not contain a cursor position", nameof(workspace));
            }

            InvocationDocument     = Workspace.CurrentSolution.GetDocument(_testDocument.Id);
            ChangeSignatureService = InvocationDocument.GetLanguageService <AbstractChangeSignatureService>();
        }