PowerShell/test/powershell/Json.Tests.ps1

34 lines
966 B
PowerShell
Raw Normal View History

2015-10-31 00:15:19 +01:00
# http://www.newtonsoft.com/json/help/html/ParsingLINQtoJSON.htm
Describe "Json.NET LINQ Parsing" {
BeforeEach {
$jsonFile = Join-Path -Path (Join-Path $PSScriptRoot -ChildPath assets) -ChildPath TestJson.json
$jsonData = (Get-Content $jsonFile | Out-String)
$json = [Newtonsoft.Json.Linq.JObject]::Parse($jsonData)
2015-10-31 00:15:19 +01:00
}
It "Should return data via Item()" {
[string]$json.Item("Name") | Should Be "Zaphod Beeblebrox"
2015-10-31 00:15:19 +01:00
}
It "Should return data via []" {
[string]$json["Planet"] | Should Be "Betelgeuse"
2015-10-31 00:15:19 +01:00
}
It "Should return nested data via Item().Item()" {
[int]$json.Item("Appendages").Item("Heads") | Should Be 2
2015-10-31 00:15:19 +01:00
}
It "Should return nested data via [][]" {
[int]$json["Appendages"]["Arms"] | Should Be 3
2015-10-31 00:15:19 +01:00
}
It "Should return correct array count" {
$json["Achievements"].Count | Should Be 4
2015-10-31 00:15:19 +01:00
}
It "Should return array data via [n]" {
[string]$json["Achievements"][3] | Should Be "One hoopy frood"
2015-10-31 00:15:19 +01:00
}
}