/
Script.CS.c++
84 lines (73 loc) · 2.68 KB
/
Script.CS.c++
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System.Collections.Generic;
using System.IO;
using Moq;
using ScriptCs.Contracts;
using ScriptCs.ReplCommands;
using Should;
using Xunit;
using Xunit.Extensions;
namespace ScriptCs.Tests.ReplCommands
{
public class AliasCommandTests
{
public class CommandNameProperty
{
[Fact]
public void ShouldReturnAlias()
{
// act
var cmd = new AliasCommand(new Mock<IConsole>().Object);
// assert
cmd.CommandName.ShouldEqual("alias");
}
}
public class ExecuteMethod
{
[Theory, ScriptCsAutoData]
public void ShouldAliasCommandWithNewName(
Mock<IFileSystem> fileSystem,
Mock<IScriptEngine> engine,
Mock<IObjectSerializer> serializer,
TestLogProvider logProvider,
Mock<IScriptLibraryComposer> composer,
Mock<IConsole> console,
Mock<IFilePreProcessor> filePreProcessor)
{
// arrange
var currentDir = @"C:\";
var dummyCommand = new Mock<IReplCommand>();
dummyCommand.Setup(x => x.CommandName).Returns("foo");
fileSystem.Setup(x => x.BinFolder).Returns(Path.Combine(currentDir, "bin"));
fileSystem.Setup(x => x.DllCacheFolder).Returns(Path.Combine(currentDir, "cache"));
var executor = new Repl(
new string[0],
fileSystem.Object,
engine.Object,
serializer.Object,
logProvider,
composer.Object,
console.Object,
filePreProcessor.Object,
new List<IReplCommand> { dummyCommand.Object },
new Printers(serializer.Object),
new ScriptInfo());
var cmd = new AliasCommand(console.Object);
// act
cmd.Execute(executor, new[] { "foo", "bar" });
// assert
executor.Commands.Count.ShouldEqual(2);
executor.Commands["bar"].ShouldBeSameAs(executor.Commands["foo"]);
}
[Fact]
public void ShouldNotThrowAnExceptionWhenAnUnknownCommandIsPassed()
{
// arrange
var command = new AliasCommand(new Mock<IConsole>().Object);
// act
var exception = Record.Exception(() => command.Execute(new Mock<IRepl>().Object, null));
// assert
exception.ShouldBeNull();
}
}
}
}