1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.Threading;
6
using System.Windows.Input;
8
using ICSharpCode.Scripting;
9
using ICSharpCode.Scripting.Tests.Utils;
10
using NUnit.Framework;
12
namespace ICSharpCode.Scripting.Tests.Console
15
/// Tests the ScriptingConsole ReadLine method.
18
public class ScriptingConsoleReadTests : ScriptingConsoleTestsBase
21
public void ReadLine_AutoIndentIsTwo_TwoSpacesWrittenToConsoleTextEditor()
24
FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.A);
25
FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
28
TestableScriptingConsole.ReadLine(indent);
30
string expectedText = " ";
31
Assert.AreEqual(expectedText, FakeConsoleTextEditor.TextPassedToAppend);
35
public void ReadLine_AutoIndentIsZero_NoTextWrittenToConsoleTextEditor()
38
FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.A);
39
FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
41
FakeConsoleTextEditor.IsAppendCalled = false;
43
TestableScriptingConsole.ReadLine(0);
45
Assert.IsFalse(FakeConsoleTextEditor.IsAppendCalled);
49
public void ProcessPreviewKeyDown_TextEditorPreviewKeyDownEventFiresWithLetterA_ReturnsFalseForLetterThatShouldBeHandledByTextEditorItself()
52
bool result = FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.A);
53
Assert.IsFalse(result);
57
public void ProcessPreviewKeyDown_TextEditorPreviewKeyDownEventFiresWithEnterKey_ReturnsFalseForLetterThatShouldBeHandledByTextEditorItself()
60
bool result = FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
61
Assert.IsFalse(result);
65
public void ReadLine_NoLinesAvailable_ReturnsNull()
68
string line = TestableScriptingConsole.ReadLine(0);
74
public void ReadLine_OneLineWaitingAndAutoIndentIsTwo_TwoSpacesAddedToLineText()
77
FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.A);
78
FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
81
string line = TestableScriptingConsole.ReadLine(indent);
83
string expectedLine = " A";
84
Assert.AreEqual(expectedLine, line);
88
public void FireLineReceivedEvent_LineReceivedEventHandlerRegistered_CallsEventHandler()
93
TestableScriptingConsole.LineReceived += delegate {
97
TestableScriptingConsole.CallBaseFireLineReceivedEvent();
103
public void ReadFirstUnreadLine_OneLineUnread_ReturnsLine()
106
FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.A);
107
FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
109
string line = TestableScriptingConsole.ReadFirstUnreadLine();
111
string expectedline = "A";
112
Assert.AreEqual(expectedline, line);
116
public void ReadFirstUnreadLine_OneLineUnreadReadTwoLines_ReturnsNull()
119
FakeConsoleTextEditor.RaisePreviewKeyDownEvent(Key.A);
120
FakeConsoleTextEditor.RaisePreviewKeyDownEventForDialogKey(Key.Enter);
122
TestableScriptingConsole.ReadFirstUnreadLine();
123
string line = TestableScriptingConsole.ReadFirstUnreadLine();