/// <summary> /// Builds any number of tests from the specified method and context. /// </summary> /// <param name="method">The MethodInfo for which tests are to be constructed.</param> /// <param name="suite">The suite to which the tests will be added.</param> public IEnumerable <ITestCaseData> GetTestCasesFor(MethodInfo method) { List <ITestCaseData> data = new List <ITestCaseData>(); var dataProvider = new ParameterDataProvider(method); ParameterInfo[] parameters = method.GetParameters(); var name = method.Name; // For Debugging if (parameters.Length > 0) { IEnumerable[] sources = new IEnumerable[parameters.Length]; try { for (int i = 0; i < parameters.Length; i++) { sources[i] = dataProvider.GetDataFor(parameters[i]); } foreach (var parms in _strategy.GetTestCases(sources)) { data.Add(parms); } } catch (Exception ex) { var parms = new TestCaseParameters(ex); data.Add(parms); } } return(data); }
public void CanGetDataFromParameterDataProvider() { var method = GetType().GetMethod(nameof(MethodWithValues), BindingFlags.Instance | BindingFlags.Public); var parameter = method.GetParameters()[0]; var data = new ParameterDataProvider(method).GetDataFor(parameter); var expected = new[] { 1, 2, 3 }; Assert.That(data, Is.EqualTo(expected)); }
public virtual void RunParameterCompletionCommand() { if (Document.Editor.SelectionMode == Mono.TextEditor.SelectionMode.Block || CompletionWidget == null) { return; } ParameterDataProvider cp = null; int cpos; if (!GetParameterCompletionCommandOffset(out cpos)) { cpos = Editor.Caret.Offset; } CodeCompletionContext ctx = CompletionWidget.CreateCodeCompletionContext(cpos); cp = ParameterCompletionCommand(ctx); if (cp != null) { ParameterInformationWindowManager.ShowWindow(this, CompletionWidget, ctx, cp); ParameterInformationWindowManager.PostProcessKeyEvent(this, CompletionWidget, Gdk.Key.F, Gdk.ModifierType.None); } }
public override IParameterDataProvider HandleParameterCompletion(CodeCompletionContext completionContext, char completionChar) { ParameterDataProvider pdp = null; if (char.IsWhiteSpace (completionChar) || '(' == completionChar) { pdp = new ParameterDataProvider (Document, completionContext); } return (null != pdp && pdp.Valid)? pdp: null; }
public void CanGetDataFromParameterDataProvider() { var data = new ParameterDataProvider(_method).GetDataFor(_parameter); Assert.That(data, Is.EqualTo(Range1to5)); }
protected override bool OnKeyPressEvent(Gdk.EventKey evnt) { char charKey = (char)Gdk.Keyval.ToUnicode(evnt.KeyValue); if ((evnt.State == Gdk.ModifierType.ControlMask) && (charKey == 'v')) { PasteClipboard(); return(true); } ; if ((evnt.State == Gdk.ModifierType.ControlMask) && (charKey == 'c')) { CopyClipboard(); return(true); } ; KeyActions ka = KeyActions.None; //if (currentCompletionContext != null) { if (CompletionWindowManager.PreProcessKeyEvent(evnt.Key, (char)evnt.Key, evnt.State, out ka)) { CompletionWindowManager.PostProcessKeyEvent(ka); if (evnt.Key == Gdk.Key.Up || evnt.Key == Gdk.Key.Down || evnt.Key == Gdk.Key.Return || evnt.Key == Gdk.Key.Left || evnt.Key == Gdk.Key.Right) //) { return(true); } } //} if (ParameterInformationWindowManager.IsWindowVisible) { if (ParameterInformationWindowManager.ProcessKeyEvent(this, evnt.Key, evnt.State)) { return(false); } } if (CompletionWindowManager.IsTemplateModes) { return(true); } bool result = base.OnKeyPressEvent(evnt); if (!MainClass.Settings.SourceEditorSettings.AggressivelyTriggerCL) { return(result); } if (banCompletion) { return(result); } completionType = CompletionTyp.allType; if ((evnt.State != Gdk.ModifierType.None) && charKey != '(' && charKey != ')') { return(result); } int offset = this.Document.LocationToOffset(this.Caret.Location); int lineNumber = this.Document.OffsetToLineNumber(offset); LineSegment lineSegment = this.Document.GetLine(lineNumber); string lineText = this.Document.GetTextBetween(lineSegment.Offset, offset); int countBrackets1 = lineText.Count(c => c == '('); int countBrackets2 = lineText.Count(c => c == ')'); if (countBrackets1 <= countBrackets2) { ParameterInformationWindowManager.HideWindow(this); } if (((charKey == '\0') || (char.IsPunctuation(charKey)) && (char.IsSymbol(charKey)) // ||( char.IsWhiteSpace(charKey) ) ) && (charKey != '#') && (charKey != '_') && (charKey != '.')) { return(result); } int endOffset = offset; offset = FindPrevWordOffset(offset); if (offset > 0 || endOffset > 0 || offset < endOffset) { int offset2 = FindPrevWordOffsetStartSpace(offset); string previousWord = this.Document.GetTextBetween(offset2, offset).Trim(); int offset3 = FindPrevWordOffsetWithoutDot(offset); string previousWordDot = this.Document.GetTextBetween(offset3, offset).Trim(); //Console.WriteLine("previousWord-> {0}",previousWord); //Console.WriteLine("previousWord-> {0}",previousWordDot); /*int lineNumber= this.Document.OffsetToLineNumber(endOffset); * LineSegment lineSegment = this.Document.GetLine(lineNumber); * * string lineText =this.Document.GetTextBetween(lineSegment.Offset,endOffset); */ if (!string.IsNullOrEmpty(lineText)) // som za komentarom { if (lineText.Contains("//")) { return(result); } } string docText = this.Document.GetTextBetween(0, endOffset); int countCommentStart = CountExpresion("/*", docText); // int countCommentEnd = CountExpresion("*/", docText); // //int countComment = CountExpresion(""",docText); int countSem = docText.Count(c => c == '"'); if (charKey == '(') { int offsetB = FindPrevWordOffsetWithoutBrackets(offset); string previousWordB = this.Document.GetTextBetween(offsetB, offset - 1).Trim(); if ((charKey == '(') || (previousWordB.Trim().Contains('('))) { ParameterDataProvider pdp = new ParameterDataProvider(this, previousWordB.Trim()); /*IParameterDataProvider cp = null; * CodeCompletionContext ctx = CreateCodeCompletionContext (cpos); * cp = ParameterCompletionCommand (ctx); */ ParameterInformationWindowManager.ShowWindow(this, pdp); return(result); } return(result); } if (charKey == ')') { ParameterInformationWindowManager.HideWindow(this); return(result); } /*if(lineText.Trim().StartsWith("include")){ * completionType = CompletionTyp.includeType; * * Gtk.Action act = MainClass.MainWindow.EditorNotebook.EditorAction.GetAction("sourceeditor_insertautocomplete"); * if (act!=null){ * act.Activate(); * } * return result; * }*/ // komentar alebo string "" /**/ if ((countCommentStart > countCommentEnd) || (!ItEven(countSem))) { return(result); } if ((charKey == '.') || (previousWordDot.Trim().Contains('.'))) { completionType = CompletionTyp.dotType; } if (previousWord.Trim() == "new") { completionType = CompletionTyp.newType; } string word = this.Document.GetTextAt(offset, endOffset - offset).Trim(); if ((!IsKeyvord(previousWord.Trim()) && IsIdentifier(word)) || (previousWord.Trim() == "new") || (charKey == '.')) { Gtk.Action act = MainClass.MainWindow.EditorNotebook.EditorAction.GetAction("sourceeditor_insertautocomplete"); if (act != null) { act.Activate(); } } } return(result); }