You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/win_exec_wrapper/library/test_common_functions.ps1

44 lines
1.6 KiB
PowerShell

#!powershell
#Requires -Module Ansible.ModuleUtils.Legacy
$ErrorActionPreference = "Stop"
Function Assert-Equal($actual, $expected) {
if ($actual -cne $expected) {
$call_stack = (Get-PSCallStack)[1]
$error_msg = -join @(
"AssertionError:`r`nActual: `"$actual`" != Expected: `"$expected`"`r`nLine: "
"$($call_stack.ScriptLineNumber), Method: $($call_stack.Position.Text)"
)
Fail-Json -obj $result -message $error_msg
}
}
$result = @{
changed = $false
}
#ConvertFrom-AnsibleJso
$input_json = '{"string":"string","float":3.1415926,"dict":{"string":"string","int":1},"list":["entry 1","entry 2"],"null":null,"int":1}'
$actual = ConvertFrom-AnsibleJson -InputObject $input_json
Assert-Equal -actual $actual.GetType() -expected ([Hashtable])
Assert-Equal -actual $actual.string.GetType() -expected ([String])
Assert-Equal -actual $actual.string -expected "string"
Assert-Equal -actual $actual.int.GetType() -expected ([Int32])
Assert-Equal -actual $actual.int -expected 1
Assert-Equal -actual $actual.null -expected $null
Assert-Equal -actual $actual.float.GetType() -expected ([Decimal])
Assert-Equal -actual $actual.float -expected 3.1415926
Assert-Equal -actual $actual.list.GetType() -expected ([Object[]])
Assert-Equal -actual $actual.list.Count -expected 2
Assert-Equal -actual $actual.list[0] -expected "entry 1"
Assert-Equal -actual $actual.list[1] -expected "entry 2"
Assert-Equal -actual $actual.GetType() -expected ([Hashtable])
Assert-Equal -actual $actual.dict.string -expected "string"
Assert-Equal -actual $actual.dict.int -expected 1
$result.msg = "good"
Exit-Json -obj $result