46 lines
1.9 KiB
C#
46 lines
1.9 KiB
C#
using Moq;
|
|
using SilverOS.Welcome.Core.Apply;
|
|
|
|
public class ApplyServicesTests
|
|
{
|
|
private static Mock<IProcessRunner> Ok()
|
|
{
|
|
var m = new Mock<IProcessRunner>();
|
|
m.Setup(r => r.RunAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<CancellationToken>()))
|
|
.ReturnsAsync(new ProcessResult(0, "", ""));
|
|
return m;
|
|
}
|
|
|
|
[Fact]
|
|
public async Task AccountService_creates_standard_daily_and_admin()
|
|
{
|
|
var run = Ok();
|
|
await new AccountService(run.Object).CreateAccountsAsync("alice", "pw1", "adminpw");
|
|
// daily user is a Standard user (added to Users, NOT Administrators)
|
|
run.Verify(r => r.RunAsync("powershell.exe", It.Is<string>(s =>
|
|
s.Contains("New-LocalUser") && s.Contains("alice")), It.IsAny<CancellationToken>()));
|
|
run.Verify(r => r.RunAsync("powershell.exe", It.Is<string>(s =>
|
|
s.Contains("'SilverOS Admin'") && s.Contains("Administrators")), It.IsAny<CancellationToken>()));
|
|
}
|
|
|
|
[Fact]
|
|
public async Task BitLockerService_enables_tpm_and_pin()
|
|
{
|
|
var run = Ok();
|
|
await new BitLockerService(run.Object).EnableAsync("123456");
|
|
run.Verify(r => r.RunAsync("powershell.exe", It.Is<string>(s =>
|
|
s.Contains("Enable-BitLocker") && s.Contains("TpmAndPinProtector")), It.IsAny<CancellationToken>()));
|
|
}
|
|
|
|
[Fact]
|
|
public async Task BootstrapService_removes_autologon_and_account()
|
|
{
|
|
var run = Ok();
|
|
await new BootstrapService(run.Object).TearDownAsync("sm-bootstrap");
|
|
run.Verify(r => r.RunAsync("powershell.exe", It.Is<string>(s =>
|
|
s.Contains("AutoAdminLogon") && s.Contains("0")), It.IsAny<CancellationToken>()));
|
|
run.Verify(r => r.RunAsync("powershell.exe", It.Is<string>(s =>
|
|
s.Contains("Remove-LocalUser") && s.Contains("sm-bootstrap")), It.IsAny<CancellationToken>()));
|
|
}
|
|
}
|