feat(String): add Sting Helper functions

This commit is contained in:
Rodweil, Theodor 2023-08-06 22:29:27 +02:00
parent 52369d540d
commit b475e21f03
No known key found for this signature in database
GPG key ID: F8BC1B0EB1F9CCF5
2 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,21 @@
#!/usr/bin/env pwsh
$ErrorActionPreference = "Stop"
BeforeAll {
Import-Module (Join-Path $PSScriptRoot 'PSConfluencePublisher.psd1') -Force
}
Describe 'Get-StringHash' `
{
Context 'default' `
{
It 'works' `
{
$result = Get-StringHash 'foobar'
$result.Hash | Should -Be (
'C3AB8FF13720E8AD9047DD3946' + `
'6B3C8974E592C2FA383D4A3960714CAEF0C4F2')
}
}
}

View file

@ -0,0 +1,42 @@
#!/usr/bin/env pwsh
function Get-StringHash
{
<#
.SYNOPSIS
Get hash value of a string
.DESCRIPTION
The Get-StringHash function is just a wrapper around the
Get-FileHash function and utilizes a stream for providing said
function with proper input values.
.OUTPUTS
Same as the Get-FileHash function
.EXAMPLE
Get-StringHash 'foobar' -Algorithm 'SHA256'
#>
Param(
[Parameter(Mandatory, Position = 0)] [String] $InputString,
[Parameter()] [String] $Algorithm = 'SHA256'
)
Begin
{
$stream = [IO.MemoryStream]::New()
$writer = [IO.StreamWriter]::New($stream)
$writer.Write($InputString)
$writer.Flush()
$stream.Position = 0
}
Process
{
Get-FileHash -InputStream $stream -Algorithm $Algorithm
}
}