-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCSharpScriptCommandRunnerTests.cs
60 lines (49 loc) · 1.66 KB
/
CSharpScriptCommandRunnerTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
namespace CSharpInteractive.Tests;
public class CSharpScriptCommandRunnerTests
{
private readonly Mock<ICSharpScriptRunner> _csharpScriptRunner = new();
[Theory]
[InlineData(true)]
[InlineData(false)]
public void ShouldRunScriptCommand(bool result)
{
// Given
var command = new ScriptCommand("abc", "code");
var commandRunner = CreateInstance();
// ReSharper disable once RedundantArgumentDefaultValue
_csharpScriptRunner.Setup(i => i.Run(command, "code")).Returns(new CommandResult(command, result, null));
// When
var actualResult = commandRunner.TryRun(command);
// Then
_csharpScriptRunner.Verify(i => i.Run(command, "code"));
actualResult.Command.ShouldBe(command);
actualResult.Success.ShouldBe(result);
}
[Fact]
public void ShouldRunResetCommand()
{
// Given
var command = ResetCommand.Shared;
var commandRunner = CreateInstance();
// When
var actualResult = commandRunner.TryRun(command);
// Then
_csharpScriptRunner.Verify(i => i.Reset());
actualResult.Command.ShouldBe(command);
actualResult.Success.ShouldBe(true);
}
[Fact]
public void ShouldSkipUnhandledCommand()
{
// Given
var command = new CodeCommand();
var commandRunner = CreateInstance();
// When
var actualResult = commandRunner.TryRun(command);
// Then
actualResult.Command.ShouldBe(command);
actualResult.Success.ShouldBe(null);
}
private CSharpScriptCommandRunner CreateInstance() =>
new(_csharpScriptRunner.Object);
}