diff --git a/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 new file mode 100644 index 000000000..ec58428bf --- /dev/null +++ b/test/powershell/Modules/Microsoft.PowerShell.Utility/Set-Date.Tests.ps1 @@ -0,0 +1,26 @@ +# first check to see which platform we're on. If we're on windows we should be able +# to be sure whether we're running elevated. If we're on Linux, we can use whoami to +# determine whether we're elevated +Describe "Set-Date" { + BeforeAll { + if ( $IsWindows ) { + $identity = [System.Security.Principal.WindowsIdentity]::GetCurrent() + $windowsPrincipal = new-object 'Security.Principal.WindowsPrincipal' $identity + if ($windowsPrincipal.IsInRole("Administrators") -eq 1) { $IsElevated = $true } else { $IsElevated = $false } + } + else { + if ( (whoami) -match "root" ) { + $IsElevated = $true + } + else { + $IsElevated = $false + } + } + } + It "Set-Date should be able to set the date in an elevated context" -Skip:(! $IsElevated) { + { get-date | set-date } | Should not throw + } + It "Set-Date should produce an error in a non-elevated context" -Skip:($IsElevated) { + { get-date |set-date} | should throw + } +}