72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| BeforeAll {
 | |
|     $script:moduleName = '<% $PLASTER_PARAM_ModuleName %>'
 | |
| 
 | |
|     # If the module is not found, run the build task 'noop'.
 | |
|     if (-not (Get-Module -Name $script:moduleName -ListAvailable))
 | |
|     {
 | |
|         # Redirect all streams to $null, except the error stream (stream 2)
 | |
|         & "$PSScriptRoot/../../build.ps1" -Tasks 'noop' 2>&1 4>&1 5>&1 6>&1 > $null
 | |
|     }
 | |
| 
 | |
|     # Re-import the module using force to get any code changes between runs.
 | |
|     Import-Module -Name $script:moduleName -Force -ErrorAction 'Stop'
 | |
| 
 | |
|     $PSDefaultParameterValues['InModuleScope:ModuleName'] = $script:moduleName
 | |
|     $PSDefaultParameterValues['Mock:ModuleName'] = $script:moduleName
 | |
|     $PSDefaultParameterValues['Should:ModuleName'] = $script:moduleName
 | |
| }
 | |
| 
 | |
| AfterAll {
 | |
|     $PSDefaultParameterValues.Remove('Mock:ModuleName')
 | |
|     $PSDefaultParameterValues.Remove('InModuleScope:ModuleName')
 | |
|     $PSDefaultParameterValues.Remove('Should:ModuleName')
 | |
| 
 | |
|     Remove-Module -Name $script:moduleName
 | |
| }
 | |
| 
 | |
| Describe Get-Something {
 | |
| 
 | |
|     Context 'Return values' {
 | |
|         BeforeEach {
 | |
|             $return = Get-Something -Data 'value'
 | |
|         }
 | |
| 
 | |
|         It 'Returns a single object' {
 | |
|             ($return | Measure-Object).Count | Should -Be 1
 | |
|         }
 | |
| 
 | |
|     }
 | |
| 
 | |
|     Context 'Pipeline' {
 | |
|         It 'Accepts values from the pipeline by value' {
 | |
|             $return = 'value1', 'value2' | Get-Something
 | |
| 
 | |
|             $return[0] | Should -Be 'value1'
 | |
|             $return[1] | Should -Be 'value2'
 | |
|         }
 | |
| 
 | |
|         It 'Accepts value from the pipeline by property name' {
 | |
|             $return = 'value1', 'value2' | ForEach-Object {
 | |
|                 [PSCustomObject]@{
 | |
|                     Data = $_
 | |
|                     OtherProperty = 'other'
 | |
|                 }
 | |
|             } | Get-Something
 | |
| 
 | |
| 
 | |
|             $return[0] | Should -Be 'value1'
 | |
|             $return[1] | Should -Be 'value2'
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     Context 'ShouldProcess' {
 | |
|         It 'Supports WhatIf' {
 | |
|             (Get-Command Get-Something).Parameters.ContainsKey('WhatIf') | Should -Be $true
 | |
|             { Get-Something -Data 'value' -WhatIf } | Should -Not -Throw
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| }
 | |
| 
 |