diff --git a/test/powershell/Remove-TypeData.Tests.ps1 b/test/powershell/Remove-TypeData.Tests.ps1
index 37fa0cbfce..eccf6b511a 100644
--- a/test/powershell/Remove-TypeData.Tests.ps1
+++ b/test/powershell/Remove-TypeData.Tests.ps1
@@ -1,13 +1,5 @@
-Describe "Remove-TypeData DRT Unit Tests" -Tags DRT{
- It "Remove With Pipe line Input Pass Type Shortcut String" {
- { Update-TypeData -MemberType NoteProperty -MemberName TestNote -Value TestNote -TypeName int } | Should Not Throw
- $a = Get-TypeData System.Int32
- $a.TypeName | Should Be System.Int32
-
- { 'int' | Remove-TypeData } | Should Not Throw
- }
-
- It "Remove Type File In Initial Session State" {
+Describe "Remove-TypeData DRT Unit Tests" -Tags DRT {
+ BeforeAll {
$XMLFile1 = Join-Path $TestDrive -ChildPath "testFile1.ps1xml"
$XMLFile2 = Join-Path $TestDrive -ChildPath "testFile2.ps1xml"
$content1 = @"
@@ -23,7 +15,6 @@
"@
-
$content2 = @"
@@ -37,31 +28,56 @@
"@
-
$content1 > $XMLFile1
$content2 > $XMLFile2
- Update-TypeData -AppendPath $XMLFile1
- Update-TypeData -AppendPath $XMLFile2
- $a = 1..3
- $a.Yada | Should be 3
- $a.Yoda | Should Be 3
- Remove-TypeData -Path $XMLFile1
- $a.Yada | Should BeNullOrEmpty
- $a.Yoda | Should Be 3
-
- #clean up
- Remove-TypeData -Path $XMLFile2
+ }
+
+ BeforeEach {
+ $ps = [powershell]::Create()
+ $iss = [system.management.automation.runspaces.initialsessionstate]::CreateDefault2()
+ $rs = [system.management.automation.runspaces.runspacefactory]::CreateRunspace($iss)
+ $rs.Open()
+ $ps.Runspace = $rs
+ }
+
+ AfterEach {
+ $rs.Close()
+ $ps.Dispose()
+ }
+
+ It "Remove With Pipe line Input Pass Type Shortcut String" {
+ $null = $ps.AddScript("Update-TypeData -MemberType NoteProperty -MemberName TestNote -Value TestNote -TypeName int").Invoke()
+ $ps.Commands.Clear()
+ $null = $ps.AddScript("(Get-TypeData System.Int32).TypeName").Invoke() | Should Be System.Int32
+ $ps.Commands.Clear()
+ $null = $ps.AddScript("'int' | Remove-TypeData").Invoke()
+ $ps.HadErrors | Should be $false
+ }
+
+ It "Remove Type File In Initial Session State" {
+ # setup
+ $null = $ps.AddScript("Update-TypeData -AppendPath $XMLFile1").Invoke()
+ $ps.Commands.Clear()
+ $null = $ps.AddScript("Update-TypeData -AppendPath $XMLFile2").Invoke()
+ $ps.Commands.Clear()
+ $null = $ps.AddScript('$a = 1..3').Invoke()
+ $ps.Commands.Clear()
+ # test
+ $ps.AddScript('$a.Yada').Invoke() | Should be 3
+ $ps.Commands.Clear()
+ $ps.AddScript('$a.Yoda').Invoke() | Should Be 3
+ $ps.Commands.Clear()
+ $null = $ps.AddScript("Remove-TypeData -Path $XMLFile1").Invoke()
+ $ps.Commands.Clear()
+ $ps.AddScript('$a.Yada').Invoke() | Should BeNullOrEmpty
+ $ps.Commands.Clear()
+ $ps.AddScript('$a.Yoda').Invoke() | Should Be 3
+ $ps.Commands.Clear()
}
It "Remove Type File In Initial Session State File Not In Cache" {
- try
- {
- Remove-TypeData -Path "fakefile" -ErrorAction Stop
- Throw "OK"
- }
- catch
- {
- $_.FullyQualifiedErrorId | Should Be "TypePathException,Microsoft.PowerShell.Commands.RemoveTypeDataCommand"
- }
+ $null = $ps.AddScript("Remove-TypeData -Path fakefile").Invoke()
+ $ps.HadErrors | Should be $true
+ $ps.Streams.Error[0].FullyQualifiedErrorID | Should Be "TypePathException,Microsoft.PowerShell.Commands.RemoveTypeDataCommand"
}
-}
\ No newline at end of file
+}
diff --git a/test/powershell/Update-TypeData.Tests.ps1 b/test/powershell/Update-TypeData.Tests.ps1
index a4c1c391f6..4c4f0e0471 100644
--- a/test/powershell/Update-TypeData.Tests.ps1
+++ b/test/powershell/Update-TypeData.Tests.ps1
@@ -14,7 +14,7 @@ Describe "Update-TypeData basic functionality" -Tags DRT{
$testfile = Join-Path -Path $TestDrive -ChildPath $testfilename
$invalidFileExtensionFile = Join-Path -Path $TestDrive -ChildPath "notmshxml"
- $xmlContent=@"
+ $xmlContent=@"
AnyName
@@ -39,7 +39,7 @@ Describe "Update-TypeData basic functionality" -Tags DRT{
"@
- $xmlContent>$testfile
+ $xmlContent>$testfile
}
BeforeEach {
@@ -49,15 +49,13 @@ Describe "Update-TypeData basic functionality" -Tags DRT{
$rs.Open()
$ps.Runspace = $rs
}
-
+
AfterEach {
$rs.Close()
$ps.Dispose()
}
-
- #Pester bug:https://github.com/PowerShell/psl-pester/issues/6
- It "Update-TypeData with Invalid TypesXml should throw Exception" {
+ It "Update-TypeData with Invalid TypesXml should throw Exception" {
$null = $ps.AddScript("Update-TypeData -PrependPath $testfile")
$ps.Invoke()
$ps.HadErrors | Should be $true