Skip to content

Commit 170159e

Browse files
committed
Added tests for --info and -v|--version
1 parent 820ea75 commit 170159e

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using Xunit;
5+
using System.Text.RegularExpressions;
6+
7+
8+
namespace Dotnet.Script.Tests
9+
{
10+
public class EnvironmentTests
11+
{
12+
[Fact]
13+
public void ShouldPrintVersionNumber()
14+
{
15+
var result = ScriptTestRunner.Default.Execute("--version");
16+
Assert.Equal(0, result.exitCode);
17+
Assert.Matches(@"\d*.\d*.\d*", result.output);
18+
19+
result = ScriptTestRunner.Default.Execute("-v");
20+
Assert.Equal(0, result.exitCode);
21+
Assert.Matches(@"\d*.\d*.\d*", result.output);
22+
}
23+
24+
[Fact]
25+
public void ShouldPrintInfo()
26+
{
27+
var result = ScriptTestRunner.Default.Execute("--info");
28+
Assert.Equal(0, result.exitCode);
29+
Assert.Contains("Version", result.output);
30+
Assert.Contains("Install location", result.output);
31+
Assert.Contains("Target framework", result.output);
32+
Assert.Contains("Platform identifier", result.output);
33+
Assert.Contains("Runtime identifier", result.output);
34+
}
35+
36+
}
37+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.IO;
4+
using System.Linq;
5+
using Dotnet.Script.DependencyModel.Environment;
6+
7+
namespace Dotnet.Script.Tests
8+
{
9+
public class ScriptTestRunner
10+
{
11+
public static readonly ScriptTestRunner Default = new ScriptTestRunner();
12+
13+
private ScriptEnvironment _scriptEnvironment;
14+
15+
private ScriptTestRunner()
16+
{
17+
_scriptEnvironment = ScriptEnvironment.Default;
18+
}
19+
20+
21+
public (string output, int exitCode) Execute(params string[] arguments)
22+
{
23+
var result = ProcessHelper.RunAndCaptureOutput("dotnet", GetDotnetScriptArguments(arguments));
24+
return result;
25+
}
26+
27+
public int ExecuteInProcess(params string[] arguments)
28+
{
29+
return Program.Main(arguments ?? Array.Empty<string>());
30+
}
31+
32+
public (string output, int exitCode) ExecuteFixture(string fixture, params string[] arguments)
33+
{
34+
var pathToFixture = Path.Combine("..", "..", "..", "TestFixtures", fixture);
35+
var result = ProcessHelper.RunAndCaptureOutput("dotnet", GetDotnetScriptArguments(new string[] { pathToFixture}.Concat(arguments ?? Array.Empty<string>()).ToArray()));
36+
return result;
37+
}
38+
39+
public int ExecuteFixtureInProcess(string fixture, params string[] arguments)
40+
{
41+
var pathToFixture = Path.Combine("..", "..", "..", "TestFixtures", fixture);
42+
return Program.Main(new[] { GetPathToFixture(fixture) }.Concat(arguments ?? Array.Empty<string>()).ToArray());
43+
}
44+
45+
private static string GetPathToFixture(string fixture)
46+
{
47+
return Path.Combine("..", "..", "..", "TestFixtures", fixture);
48+
}
49+
50+
private string[] GetDotnetScriptArguments(params string[] arguments)
51+
{
52+
string configuration;
53+
#if DEBUG
54+
configuration = "Debug";
55+
#else
56+
configuration = "Release";
57+
#endif
58+
var allArguments = new List<string>(new[] { "exec", Path.Combine(Directory.GetCurrentDirectory(), "..", "..", "..", "..", "Dotnet.Script", "bin", configuration, _scriptEnvironment.TargetFramework, "dotnet-script.dll")});
59+
if (arguments != null)
60+
{
61+
allArguments.AddRange(arguments);
62+
}
63+
return allArguments.ToArray();
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)