forked from OCram85/PSCredentialStore
48 lines
2.0 KiB
PowerShell
48 lines
2.0 KiB
PowerShell
#region HEADER
|
|
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
# $RepoRoot = (Get-Item -Path $here).Parent.Parent.FullName
|
|
$RepoRoot = (Get-GitDirectory).replace('\.git', '')
|
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
|
|
$sut = $sut -replace "\d{2}`_", ''
|
|
$suthome = (Get-ChildItem -Path $RepoRoot -Exclude ".\tests\" -Filter $sut -Recurse).FullName
|
|
# Skip try loading the source file if it doesn't exists.
|
|
If ($suthome.Length -gt 0) {
|
|
. $suthome
|
|
}
|
|
Else {
|
|
Write-Warning ("Could not find source file {0}" -f $sut)
|
|
}
|
|
|
|
# load additional functions defined in the repository. Replace the expression <FunctionName>.
|
|
#. (Get-ChildItem -Path $RepoRoot -Filter "Test-CredentialStore.ps1" -Recurse).FullName
|
|
|
|
#endregion HEADER
|
|
|
|
Describe "Get-CredentialStore" {
|
|
Context "Basic logic tests" {
|
|
$TestCredentialStore = Resolve-Path -Path ("{0}\resources\cs\CredentialStore.json" -f $RepoRoot)
|
|
It "Test1: Read CS without params" {
|
|
If (Test-Path -Path ("{0}\CredentialStore.json" -f $env:APPDATA)) {
|
|
{Get-CredentialStore} | Should Not Throw
|
|
}
|
|
Else {
|
|
Write-Warning "Default private Credential Store not found. Skipping..."
|
|
}
|
|
}
|
|
It "Test2: Read Credential Store with testing data" {
|
|
|
|
{Get-CredentialStore -Path $TestCredentialStore} | Should Not Throw
|
|
}
|
|
It "Test3: Not existing path should return false" {
|
|
{ Get-CredentialStore -Path 'C:\foobar\CredentialStore.json' -Shared }| Should -Throw "Could not find the CredentialStore."
|
|
}
|
|
}
|
|
Context "Testing invalid json data" {
|
|
Mock Test-CredentialStore {return $true}
|
|
Mock Get-Content {return '"foo":"bar",'}
|
|
It "Should throw with invalid CredentialStore" {
|
|
{ Get-Credentialstore -Path "C:\dummy.json"} | Should -Throw "Unknown CredentialStore format. Invalid JSON file."
|
|
}
|
|
}
|
|
}
|