mirror of
https://github.com/aphrody-labs/PowerShell.git
synced 2026-10-17 04:36:39 +00:00
update encoding on the test files - these are ascii
This commit is contained in:
1 parent
7b836f99f5
commit
dd0291be09
20 files changed
+4628
-4669
No files matched your search
@@ -1,221 +1,221 @@
|
||||
# This is a Pester test suite to validate the Format-Hex cmdlet in the Microsoft.PowerShell.Utility module.
|
||||
#
|
||||
# Copyright (c) Microsoft Corporation, 2015
|
||||
#
|
||||
|
||||
<#
|
||||
Purpose:
|
||||
Verify that Format-Hex display the Hexa decmial value for the input data.
|
||||
|
||||
Action:
|
||||
Run Format-Fex.
|
||||
|
||||
Expected Result:
|
||||
Hexa decimal equivalent of the input data is displayed.
|
||||
#>
|
||||
|
||||
Describe "FormatHex" -tags "CI" {
|
||||
BeforeAll {
|
||||
Setup -d FormatHexDataDir
|
||||
$inputText1 = 'Hello World'
|
||||
$inputText2 = 'This is a bit more text'
|
||||
$inputFile1 = setup -f "FormatHexDataDir/SourceFile-1.txt" -content $inputText1 -pass
|
||||
$inputFile2 = setup -f "FormatHexDataDir/SourceFile-2.txt" -content $inputText2 -pass
|
||||
}
|
||||
|
||||
# This test is to validate to pipeline support in Format-Hex cmdlet.
|
||||
It "ValidatePipelineSupport" {
|
||||
|
||||
# InputObject Parameter set should get invoked and
|
||||
# the input data should be treated as string.
|
||||
$result = $inputText1 | Format-Hex
|
||||
$result | Should Not Be $null
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to pipeline support in Format-Hex cmdlet.
|
||||
It "ValidateByteArrayInputSupport" {
|
||||
|
||||
# InputObject Parameter set should get invoked and
|
||||
# the input data should be treated as byte[].
|
||||
$inputBytes = [System.Text.Encoding]::ASCII.GetBytes($inputText1)
|
||||
|
||||
$result = Format-Hex -InputObject $inputBytes
|
||||
$result | Should Not Be $null
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to input given through Path paramter set in Format-Hex cmdlet.
|
||||
It "ValidatePathParameterSet" {
|
||||
|
||||
$result = Format-Hex -Path $inputFile1
|
||||
$result | Should Not Be $null
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to Path paramter set is considered as default in Format-Hex cmdlet.
|
||||
It "ValidatePathAsDefaultParameterSet" {
|
||||
|
||||
$result = Format-Hex $inputFile1
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to input given through LiteralPath paramter set in Format-Hex cmdlet.
|
||||
It "ValidateLiteralPathParameterSet" {
|
||||
|
||||
$result = Format-Hex -LiteralPath $inputFile1
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to input given through pipeline. The input being piped from results of Get-hildItem
|
||||
It "ValidateFileInfoPipelineInput" {
|
||||
|
||||
$result = Get-ChildItem $inputFile1 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate Encoding formats functionality of Format-Hex cmdlet.
|
||||
It "ValidateEncodingFormats" {
|
||||
|
||||
$result = Format-Hex -InputObject $inputText1 -Encoding ASCII
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate that integers can be piped to the format-hex
|
||||
It "ValidateIntegerInput" {
|
||||
|
||||
$result = 1,2,3,4 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | should be "00000000 01 02 03 04 .... "
|
||||
}
|
||||
|
||||
# This test is to validate that integers can be piped to the format-hex
|
||||
# and properly represented as characters in the string
|
||||
It "ValidateIntegerInputThatPresentAsCharacters" {
|
||||
|
||||
$result = 65..68 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | should be "00000000 41 42 43 44 ABCD "
|
||||
}
|
||||
|
||||
# This test is to validate that integers can be piped to the format-hex
|
||||
It "ValidateIntegerRawInput" {
|
||||
|
||||
$result = 1,2,3,4 | Format-Hex -Raw
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | should be "00000000 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 ................"
|
||||
}
|
||||
|
||||
# handle int64
|
||||
It "ValidateInteger64" {
|
||||
|
||||
$result = [int64]::MaxValue | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | Should Match "00000000 FF FF FF FF FF FF FF 7F ."
|
||||
}
|
||||
|
||||
# handle bytes, int16, int32, and int64
|
||||
It "Validate combined and reduced number formatting" {
|
||||
$b = 65 # fits in a byte
|
||||
$i16 = 32767 # fits in an int16
|
||||
$i32 = 2147483647 # an int32
|
||||
$i64 = 9223372036854775807 # an int64
|
||||
$result = $b,$i16,$i32,$i64 | format-Hex
|
||||
$result.GetType().Name | should be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
$actualResult | should Match "00000000 41 FF 7F FF FF FF 7F FF FF FF FF FF FF FF 7F A"
|
||||
}
|
||||
|
||||
# handle bytes, int16, int32, and int64
|
||||
It "Validate combined and with raw number formatting" {
|
||||
$b = 65 # fits in a byte
|
||||
$i16 = 32767 # fits in an int16
|
||||
$i32 = 2147483647 # an int32
|
||||
$i64 = 9223372036854775807 # an int64
|
||||
# this will cause 2 lines to be emitted
|
||||
$result = $b,$i16,$i32,$i64 | format-Hex -Raw
|
||||
$result[0].GetType().Name | should be 'ByteCollection'
|
||||
$result[1].GetType().Name | should be 'ByteCollection'
|
||||
$result0 = $result[0].ToString()
|
||||
$result0 | should match "00000000 41 00 00 00 FF 7F 00 00 FF FF FF 7F FF FF FF FF A"
|
||||
$result1 = $result[1].ToString()
|
||||
$result1 | should match "00000010 FF FF FF 7F .."
|
||||
}
|
||||
|
||||
# This test is to validate that streamed text does not have buffer underrun problems
|
||||
It "ValidateEachBufferHasCorrectContentForStreamingText" {
|
||||
$result = "a" * 30 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString() -split "`r`n"
|
||||
$actualResult.Count | should be 2
|
||||
$actualResult[0].ToString() | Should be "00000000 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa"
|
||||
$actualResult[1].ToString() | Should be "00000010 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaa "
|
||||
}
|
||||
|
||||
# This test is to validate that files do not have buffer underrun problems
|
||||
It "ValidateEachBufferHasCorrectContentForFiles" {
|
||||
$result = Format-Hex -path $InputFile2
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.Count | should be 2
|
||||
$result[0].ToString() | Should be "00000000 54 68 69 73 20 69 73 20 61 20 62 69 74 20 6D 6F This is a bit mo"
|
||||
if ( $IsCore ) {
|
||||
$result[1].ToString() | Should be "00000010 72 65 20 74 65 78 74 re text "
|
||||
}
|
||||
}
|
||||
|
||||
# This test ensures that if we stream bytes from a file, the output is correct
|
||||
It "ValidateStreamOfBytesFromFileHasProperOutput" {
|
||||
$result = Get-Content $InputFile1 -Encoding Byte | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be "ByteCollection"
|
||||
if ( $IsCore ) {
|
||||
$result.ToString() | Should be "00000000 48 65 6C 6C 6F 20 57 6F 72 6C 64 Hello World "
|
||||
}
|
||||
}
|
||||
|
||||
# This test is to validate the alias for Format-Hex cmdlet.
|
||||
It "ValidateCmdletAlias" {
|
||||
|
||||
try
|
||||
{
|
||||
$result = Get-Command fhx -ErrorAction Stop
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.CommandType.ToString() | Should Be "Alias"
|
||||
}
|
||||
catch
|
||||
{
|
||||
$_ | Should BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
}
|
||||
# This is a Pester test suite to validate the Format-Hex cmdlet in the Microsoft.PowerShell.Utility module.
|
||||
#
|
||||
# Copyright (c) Microsoft Corporation, 2015
|
||||
#
|
||||
|
||||
<#
|
||||
Purpose:
|
||||
Verify that Format-Hex display the Hexa decmial value for the input data.
|
||||
|
||||
Action:
|
||||
Run Format-Fex.
|
||||
|
||||
Expected Result:
|
||||
Hexa decimal equivalent of the input data is displayed.
|
||||
#>
|
||||
|
||||
Describe "FormatHex" -tags "CI" {
|
||||
BeforeAll {
|
||||
Setup -d FormatHexDataDir
|
||||
$inputText1 = 'Hello World'
|
||||
$inputText2 = 'This is a bit more text'
|
||||
$inputFile1 = setup -f "FormatHexDataDir/SourceFile-1.txt" -content $inputText1 -pass
|
||||
$inputFile2 = setup -f "FormatHexDataDir/SourceFile-2.txt" -content $inputText2 -pass
|
||||
}
|
||||
|
||||
# This test is to validate to pipeline support in Format-Hex cmdlet.
|
||||
It "ValidatePipelineSupport" {
|
||||
|
||||
# InputObject Parameter set should get invoked and
|
||||
# the input data should be treated as string.
|
||||
$result = $inputText1 | Format-Hex
|
||||
$result | Should Not Be $null
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to pipeline support in Format-Hex cmdlet.
|
||||
It "ValidateByteArrayInputSupport" {
|
||||
|
||||
# InputObject Parameter set should get invoked and
|
||||
# the input data should be treated as byte[].
|
||||
$inputBytes = [System.Text.Encoding]::ASCII.GetBytes($inputText1)
|
||||
|
||||
$result = Format-Hex -InputObject $inputBytes
|
||||
$result | Should Not Be $null
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to input given through Path paramter set in Format-Hex cmdlet.
|
||||
It "ValidatePathParameterSet" {
|
||||
|
||||
$result = Format-Hex -Path $inputFile1
|
||||
$result | Should Not Be $null
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to Path paramter set is considered as default in Format-Hex cmdlet.
|
||||
It "ValidatePathAsDefaultParameterSet" {
|
||||
|
||||
$result = Format-Hex $inputFile1
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to input given through LiteralPath paramter set in Format-Hex cmdlet.
|
||||
It "ValidateLiteralPathParameterSet" {
|
||||
|
||||
$result = Format-Hex -LiteralPath $inputFile1
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate to input given through pipeline. The input being piped from results of Get-hildItem
|
||||
It "ValidateFileInfoPipelineInput" {
|
||||
|
||||
$result = Get-ChildItem $inputFile1 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate Encoding formats functionality of Format-Hex cmdlet.
|
||||
It "ValidateEncodingFormats" {
|
||||
|
||||
$result = Format-Hex -InputObject $inputText1 -Encoding ASCII
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
($actualResult -match $inputText1) | Should Be $true
|
||||
}
|
||||
|
||||
# This test is to validate that integers can be piped to the format-hex
|
||||
It "ValidateIntegerInput" {
|
||||
|
||||
$result = 1,2,3,4 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | should be "00000000 01 02 03 04 .... "
|
||||
}
|
||||
|
||||
# This test is to validate that integers can be piped to the format-hex
|
||||
# and properly represented as characters in the string
|
||||
It "ValidateIntegerInputThatPresentAsCharacters" {
|
||||
|
||||
$result = 65..68 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | should be "00000000 41 42 43 44 ABCD "
|
||||
}
|
||||
|
||||
# This test is to validate that integers can be piped to the format-hex
|
||||
It "ValidateIntegerRawInput" {
|
||||
|
||||
$result = 1,2,3,4 | Format-Hex -Raw
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | should be "00000000 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 ................"
|
||||
}
|
||||
|
||||
# handle int64
|
||||
It "ValidateInteger64" {
|
||||
|
||||
$result = [int64]::MaxValue | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
# whitespace sensitive
|
||||
$actualResult | Should Match "00000000 FF FF FF FF FF FF FF 7F ."
|
||||
}
|
||||
|
||||
# handle bytes, int16, int32, and int64
|
||||
It "Validate combined and reduced number formatting" {
|
||||
$b = 65 # fits in a byte
|
||||
$i16 = 32767 # fits in an int16
|
||||
$i32 = 2147483647 # an int32
|
||||
$i64 = 9223372036854775807 # an int64
|
||||
$result = $b,$i16,$i32,$i64 | format-Hex
|
||||
$result.GetType().Name | should be 'ByteCollection'
|
||||
$actualResult = $result.ToString()
|
||||
$actualResult | should Match "00000000 41 FF 7F FF FF FF 7F FF FF FF FF FF FF FF 7F A"
|
||||
}
|
||||
|
||||
# handle bytes, int16, int32, and int64
|
||||
It "Validate combined and with raw number formatting" {
|
||||
$b = 65 # fits in a byte
|
||||
$i16 = 32767 # fits in an int16
|
||||
$i32 = 2147483647 # an int32
|
||||
$i64 = 9223372036854775807 # an int64
|
||||
# this will cause 2 lines to be emitted
|
||||
$result = $b,$i16,$i32,$i64 | format-Hex -Raw
|
||||
$result[0].GetType().Name | should be 'ByteCollection'
|
||||
$result[1].GetType().Name | should be 'ByteCollection'
|
||||
$result0 = $result[0].ToString()
|
||||
$result0 | should match "00000000 41 00 00 00 FF 7F 00 00 FF FF FF 7F FF FF FF FF A"
|
||||
$result1 = $result[1].ToString()
|
||||
$result1 | should match "00000010 FF FF FF 7F .."
|
||||
}
|
||||
|
||||
# This test is to validate that streamed text does not have buffer underrun problems
|
||||
It "ValidateEachBufferHasCorrectContentForStreamingText" {
|
||||
$result = "a" * 30 | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be 'ByteCollection'
|
||||
$actualResult = $result.ToString() -split "`r`n"
|
||||
$actualResult.Count | should be 2
|
||||
$actualResult[0].ToString() | Should be "00000000 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa"
|
||||
$actualResult[1].ToString() | Should be "00000010 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaa "
|
||||
}
|
||||
|
||||
# This test is to validate that files do not have buffer underrun problems
|
||||
It "ValidateEachBufferHasCorrectContentForFiles" {
|
||||
$result = Format-Hex -path $InputFile2
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.Count | should be 2
|
||||
$result[0].ToString() | Should be "00000000 54 68 69 73 20 69 73 20 61 20 62 69 74 20 6D 6F This is a bit mo"
|
||||
if ( $IsCore ) {
|
||||
$result[1].ToString() | Should be "00000010 72 65 20 74 65 78 74 re text "
|
||||
}
|
||||
}
|
||||
|
||||
# This test ensures that if we stream bytes from a file, the output is correct
|
||||
It "ValidateStreamOfBytesFromFileHasProperOutput" {
|
||||
$result = Get-Content $InputFile1 -Encoding Byte | Format-Hex
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.GetType().Name | Should Be "ByteCollection"
|
||||
if ( $IsCore ) {
|
||||
$result.ToString() | Should be "00000000 48 65 6C 6C 6F 20 57 6F 72 6C 64 Hello World "
|
||||
}
|
||||
}
|
||||
|
||||
# This test is to validate the alias for Format-Hex cmdlet.
|
||||
It "ValidateCmdletAlias" {
|
||||
|
||||
try
|
||||
{
|
||||
$result = Get-Command fhx -ErrorAction Stop
|
||||
$result | Should Not BeNullOrEmpty
|
||||
$result.CommandType.ToString() | Should Be "Alias"
|
||||
}
|
||||
catch
|
||||
{
|
||||
$_ | Should BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user