diff --git a/Test/public/gethubberreports.test.ps1 b/Test/public/gethubberreports.test.ps1 new file mode 100644 index 0000000..d3567f6 --- /dev/null +++ b/Test/public/gethubberreports.test.ps1 @@ -0,0 +1,32 @@ + +function Test_GetHubberReports_Success_All{ + + # Arrange + Reset-InvokeCommandMock + Mock_Database + $filePath = Get-MockFileFullPath -fileName "hubbers.json" + $result = Import-HubbersListV2 -Path $filePath + + $l = Get-HubbersList + + foreach($h in $l.Keys){ + + # Act + $r = Get-HubberReports -Handle $h + + # Assert + Assert-Count -Expected ($l.$h.totalReports) -Presented $r + } +} + +function Test_GetHubberReports_HubberNotFound{ + + # Arrange + Reset-InvokeCommandMock + Mock_Database + $filePath = Get-MockFileFullPath -fileName "hubbers.json" + $result = Import-HubbersList -Path $filePath + + # Act & Assert + Assert-NotImplemented +} diff --git a/public/getHubberReports.ps1 b/public/getHubberReports.ps1 new file mode 100644 index 0000000..d0744db --- /dev/null +++ b/public/getHubberReports.ps1 @@ -0,0 +1,38 @@ +function Get-HubberReports { + [CmdletBinding()] + param ( + [Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName,Position=0)][string]$Handle + ) + + $node = Get-Hubber -Handle $Handle + + if($null -eq $node){ + throw "Hubber with handle '$Handle' not found" + } + + # recurse for every report + $ret = $node.reports.values | Get-Reports + + return $ret + +} Export-ModuleMember -Function Get-HubberReports + +function Get-Reports{ + param ( + [Parameter(ValueFromPipeline)][object]$node + ) + process{ + + if($null -eq $node){ + return @() + } + + $ret = @() + + $ret = $node.reports.values | Get-Reports + + $ret += $node + + return $ret + } +} \ No newline at end of file