From a7a4c0d6406ce9a5727a45c63f8a2f81b6f285ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20=28Dibildos=29=20Gonz=C3=A1lez?= Date: Thu, 18 Dec 2025 11:14:51 +0100 Subject: [PATCH] feat(tests): add Get-HubberReports and Get-Reports functions --- Test/public/gethubberreports.test.ps1 | 32 ++++++++++++++++++++++ public/getHubberReports.ps1 | 38 +++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 Test/public/gethubberreports.test.ps1 create mode 100644 public/getHubberReports.ps1 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