BlazorFocused.Automation.PowerShell.Tools
1.0.0-alpha1
This is a prerelease version of BlazorFocused.Automation.PowerShell.Tools.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package BlazorFocused.Automation.PowerShell.Tools --version 1.0.0-alpha1
NuGet\Install-Package BlazorFocused.Automation.PowerShell.Tools -Version 1.0.0-alpha1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BlazorFocused.Automation.PowerShell.Tools" Version="1.0.0-alpha1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BlazorFocused.Automation.PowerShell.Tools --version 1.0.0-alpha1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: BlazorFocused.Automation.PowerShell.Tools, 1.0.0-alpha1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BlazorFocused.Automation.PowerShell.Tools as a Cake Addin #addin nuget:?package=BlazorFocused.Automation.PowerShell.Tools&version=1.0.0-alpha1&prerelease // Install BlazorFocused.Automation.PowerShell.Tools as a Cake Tool #tool nuget:?package=BlazorFocused.Automation.PowerShell.Tools&version=1.0.0-alpha1&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
BlazorFocused.Automation.PowerShell.Tools
Development tools for running/testing PSCmdlets built with Automation framework
NuGet Packages
Package | Description |
---|---|
BlazorFocused.Automation.PowerShell.Tools | Development tools for running/testing PSCmdlets built with Automation framework |
Documentation
Please visit the BlazorFocused.Automation Documentation Site for installation, getting started, and API documentation.
Samples
Please visit and/or download our BlazorFocused.Automation.PowerShell.Tools Sample Solution to get a more in-depth view of usage.
Requirements
- PowerShell 7.3 or greater
Installation
.NET CLI
dotnet add package BlazorFocused.Automation.PowerShell.Tools
Testing AutomationIoC PSCmdlets
Sample AutomationIoC PSCmdlet startup class
public class Startup : AutomationStartup
{
// Add any configuration sources or data needed
public override void Configure(HostBuilderContext hostBuilderContext, IConfigurationBuilder configurationBuilder)
{
// AutomationEnvironment class allows retrieving global PowerShell
// variables during service configuration.
var environment =
AutomationEnvironment.GetVariable<string>("AppEnvironment");
var appSettings = new Dictionary<string, string>()
{
["TestOptionsConfig:TestProperty"] = "This is an example",
["AppEnvironment"] = environment
};
configurationBuilder.AddInMemoryCollection(appSettings);
}
// Configure services/lifetimes
public override void ConfigureServices(HostBuilderContext hostBuilderContext, IServiceCollection services)
{
services.Configure<TestOptions>(Configuration.GetSection("TestOptionsConfig"));
services.AddTransient<ITestDependencyOne, TestDependencyOne>();
services.AddTransient<ITestDependencyTwo, TestDependencyTwo>();
// ...
// other services, client, etc.
}
}
Sample Automation PSCmdlet to test
[Cmdlet(VerbsLifecycle.Submit, "Data")]
public class SubmitData : AutomationShell<Startup>
{
[Parameter(Mandatory = true)]
public string Id { get; set; }
[AutomationDependency]
protected ITestDependencyOne TestDependencyOne { get; set; }
[AutomationDependency]
protected ITestDependencyTwo testDependencyTwo { get; set; }
[AutomationDependency]
private ILogger<RequestCard> logger { get; set; }
protected override void ProcessRecord()
{
base.ProcessRecord();
TestDependencyOne.PushTestId(Id);
TestData testData = testDependencyTwo.GetTestData(Id);
logger.LogInformation("Auto Generated Data: {Id} - {Name}", Id, testData.Name);
WriteObject(testData);
}
}
Sample Test
using AutomationIoC.PSCmdlets.Tools;
using FluentAssertions;
using Xunit;
public class RequestCardTests
{
[Fact]
public void ShouldSubmitData()
{
var testDependencyOneMock = new Mock<ITestDependencyOne>();
var testDependencyTwoMock = new Mock<ITestDependencyTwo>();
var testId = "ThisIsATestId";
var expectedTestData = new TestData { Id = testId, Name = "ThisIsTestName" };
testDependencyTwoMock.Setup(dependency =>
dependency.GetTestDataAsync(testId))
.Returns(expectedTestData);
// Creates inline context of the command under test
using var submitDataCommand =
AutomationSandbox.CreateContext<SubmitData, Startup>(services =>
{
services.AddTransient(_ => testDependencyOneMock.Object);
services.AddTransient(_ => testDependencyTwoMock.Object);
});
submitDataCommand.AddParameter(command =>
command.AddParameter("id", testId));
var actualTestData = submitDataCommand.RunCommand<TestData>().First();
actualTestData.Should().BeEquivalentTo(expectedTestData);
}
}
Other Resources
Related Packages
Package | Description |
---|---|
BlazorFocused.Automation.Runtime | Runtime services for BlazorFocused.Automation framework |
BlazorFocused.Automation.CommandLine | Dependency Injection Framework for C# Console Applications |
BlazorFocused.Automation.PowerShell | PowerShell PSCmdlet SDK utilities for Automation framework development |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- BlazorFocused.Automation.PowerShell (>= 1.0.0-alpha1)
- Microsoft.PowerShell.SDK (>= 7.2.7)
-
net7.0
- BlazorFocused.Automation.PowerShell (>= 1.0.0-alpha1)
- Microsoft.PowerShell.SDK (>= 7.3.7)
-
net8.0
- BlazorFocused.Automation.PowerShell (>= 1.0.0-alpha1)
- Microsoft.PowerShell.SDK (>= 7.4.0-preview.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.0-preview2 | 65 | 11/28/2024 |
1.1.0-preview1 | 51 | 11/21/2024 |
1.0.0-preview1 | 89 | 2/27/2024 |
1.0.0-alpha1 | 104 | 9/29/2023 |