Skip to content

Commit 28cdd7a

Browse files
Improved tests
1 parent 66e63b4 commit 28cdd7a

15 files changed

+78
-33
lines changed

CSharpInteractive.Tests/UsageScenarios/CommandLineAsyncScenario.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ await GetService<ICommandLineRunner>()
3535
.EnsureSuccess();
3636
// }
3737

38-
result.ExitCode.HasValue.ShouldBeTrue();
38+
result.ExitCode.HasValue.ShouldBeTrue(result.ToString());
3939
}
4040
}

CSharpInteractive.Tests/UsageScenarios/CommandLineInParallelScenario.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public async Task Run()
3636
await task;
3737
// }
3838

39-
task.Result.ExitCode.HasValue.ShouldBeTrue();
40-
result.ExitCode.HasValue.ShouldBeTrue();
39+
task.Result.ExitCode.HasValue.ShouldBeTrue(result.ToString());
40+
result.ExitCode.HasValue.ShouldBeTrue(result.ToString());
4141
}
4242
}

CSharpInteractive.Tests/UsageScenarios/CommandLineOutputScenario.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@ public void Run()
3333
lines.ShouldContain("MyEnv=MyVal");
3434
// }
3535

36-
result.ExitCode.HasValue.ShouldBeTrue();
36+
result.ExitCode.HasValue.ShouldBeTrue(result.ToString());
3737
}
3838
}

CSharpInteractive.Tests/UsageScenarios/CommandLineWithTimeoutScenario.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public void Run()
3030
.Run(default, TimeSpan.FromMilliseconds(1))
3131
.EnsureSuccess()
3232
.ExitCode;
33-
34-
exitCode.HasValue.ShouldBeFalse();
3533
// }
34+
35+
exitCode.HasValue.ShouldBeFalse(exitCode.ToString());
3636
}
3737
}

CSharpInteractive.Tests/UsageScenarios/DockerDotNetBuildScenario.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ public void Run()
4949
.Build()
5050
.EnsureSuccess();
5151

52-
// The "result" variable provides details about a build
53-
result.Errors.Any(message => message.State == BuildMessageState.StdError).ShouldBeFalse();
54-
result.ExitCode.ShouldBe(0);
55-
5652
string ToAbsoluteLinuxPath(string path) =>
5753
"/" + path.Replace(":", "").Replace('\\', '/');
5854
// }
55+
56+
// The "result" variable provides details about a build
57+
result.Errors.Any(message => message.State == BuildMessageState.StdError).ShouldBeFalse(result.ToString());
58+
result.ExitCode.ShouldBe(0, result.ToString());
5959
}
6060
}

CSharpInteractive.Tests/UsageScenarios/DotNetBuildScenario.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ public void Run()
3030
.Build().EnsureSuccess();
3131

3232
// Builds the library project, running a command like: "dotnet build" from the directory "MyLib"
33+
var messages = new List<BuildMessage>();
3334
var result = new DotNetBuild()
3435
.WithWorkingDirectory("MyLib")
35-
.Build().EnsureSuccess();
36+
.Build(message => messages.Add(message)).EnsureSuccess();
3637

3738
// The "result" variable provides details about a build
39+
messages.Count.ShouldBeGreaterThan(0, result.ToString());
3840
result.Errors.Any(message => message.State == BuildMessageState.StdError).ShouldBeFalse();
3941
result.ExitCode.ShouldBe(0);
4042

@@ -43,10 +45,10 @@ public void Run()
4345
.WithWorkingDirectory("MyLib")
4446
.Build()
4547
.EnsureSuccess();
46-
48+
// }
49+
4750
result.ExitCode.ShouldBe(0);
4851
result.Summary.Tests.ShouldBe(1);
4952
result.Tests.Count(test => test.State == TestState.Finished).ShouldBe(1);
50-
// }
5153
}
5254
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// ReSharper disable StringLiteralTypo
2+
// ReSharper disable ObjectCreationAsStatement
3+
// ReSharper disable ReturnValueOfPureMethodIsNotUsed
4+
5+
namespace CSharpInteractive.Tests.UsageScenarios;
6+
7+
using System.Diagnostics.CodeAnalysis;
8+
using HostApi;
9+
10+
[CollectionDefinition("Integration", DisableParallelization = true)]
11+
[Trait("Integration", "True")]
12+
[SuppressMessage("Performance", "CA1861:Avoid constant arrays as arguments")]
13+
public class DotNetCsiScenario : BaseScenario
14+
{
15+
[Fact]
16+
public void Run()
17+
{
18+
// $visible=true
19+
// $tag=07 .NET CLI
20+
// $priority=02
21+
// $description=Run C# script
22+
// {
23+
// Adds the namespace "HostApi" to use .NET build API
24+
// ## using HostApi;
25+
26+
var script = Path.GetTempFileName();
27+
File.WriteAllText(script, "Console.WriteLine($\"Hello, {Args[0]}!\");");
28+
29+
var stdOut = new List<string>();
30+
var result = new DotNetCsi()
31+
.WithScript(script)
32+
.AddArgs("World")
33+
.Build(message => stdOut.Add(message.Text))
34+
.EnsureSuccess();
35+
36+
result.ExitCode.ShouldBe(0);
37+
38+
// Checks StdOut
39+
stdOut.Contains("Hello, World!").ShouldBeTrue(result.ToString());
40+
// }
41+
}
42+
}

CSharpInteractive.Tests/UsageScenarios/DotNetPackScenario.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ public void Run()
3636
.WithWorkingDirectory("MyLib")
3737
.AddProps(("version", "1.2.3"))
3838
.Build().EnsureSuccess();
39-
40-
result.ExitCode.ShouldBe(0);
4139
// }
40+
41+
result.ExitCode.ShouldBe(0, result.ToString());
4242
}
4343
}

CSharpInteractive.Tests/UsageScenarios/DotNetPublishScenario.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public void Run()
3737
.WithWorkingDirectory("MyLib")
3838
.WithFramework("net8.0")
3939
.Build().EnsureSuccess();
40-
41-
result.ExitCode.ShouldBe(0);
4240
// }
41+
42+
result.ExitCode.ShouldBe(0);
4343
}
4444
}

CSharpInteractive.Tests/UsageScenarios/DotNetRestoreScenario.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public void Run()
3535
result = new DotNetRestore()
3636
.WithWorkingDirectory("MyLib")
3737
.Build().EnsureSuccess();
38-
39-
result.ExitCode.ShouldBe(0);
4038
// }
39+
40+
result.ExitCode.ShouldBe(0);
4141
}
4242
}

0 commit comments

Comments
 (0)