-
Notifications
You must be signed in to change notification settings - Fork 468
Expand file tree
/
Copy pathCommandResultAssertions.cs
More file actions
43 lines (37 loc) · 2.17 KB
/
CommandResultAssertions.cs
File metadata and controls
43 lines (37 loc) · 2.17 KB
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
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
// Based off of: https://github.com/dotnet/sdk/blob/e793aa4709d28cd783712df40413448250e26fea/test/Microsoft.NET.TestFramework/Assertions/CommandResultAssertions.cs
using Azure.Functions.Cli.Abstractions.Command;
using FluentAssertions;
using FluentAssertions.Execution;
namespace Azure.Functions.Cli.TestFramework.Assertions
{
public class CommandResultAssertions(CommandResult commandResult)
{
private readonly CommandResult _commandResult = commandResult;
public CommandResultAssertions ExitWith(int expectedExitCode)
{
Execute.Assertion.ForCondition(_commandResult.ExitCode == expectedExitCode)
.FailWith($"Expected command to exit with {expectedExitCode} but it did not. Error message: {_commandResult.StdErr}");
return this;
}
public AndConstraint<CommandResultAssertions> HaveStdOutContaining(string pattern)
{
Execute.Assertion.ForCondition(_commandResult.StdOut is not null && _commandResult.StdOut.Contains(pattern))
.FailWith($"The command output did not contain expected result: {pattern}{Environment.NewLine}");
return new AndConstraint<CommandResultAssertions>(this);
}
public AndConstraint<CommandResultAssertions> HaveStdErrContaining(string pattern)
{
Execute.Assertion.ForCondition(_commandResult.StdErr is not null && _commandResult.StdErr.Contains(pattern))
.FailWith($"The command output did not contain expected result: {pattern}{Environment.NewLine}");
return new AndConstraint<CommandResultAssertions>(this);
}
public AndConstraint<CommandResultAssertions> NotHaveStdOutContaining(string pattern)
{
Execute.Assertion.ForCondition(_commandResult.StdOut is not null && !_commandResult.StdOut.Contains(pattern))
.FailWith($"The command output did contain expected result: {pattern}{Environment.NewLine}");
return new AndConstraint<CommandResultAssertions>(this);
}
}
}