Private/Register-OriAzBopInternalPSRepository.ps1

<#
.DESCRIPTION
Since is not possible to Mock Get-Package due dynamic block should be the function sparated for unit test resons
Note: See more on https://github.com/pester/Pester/issues/604
 
.SYNOPSIS
Since is not possible to Mock Get-Package due dynamic block should be the function sparated for unit test resons
Note: See more on https://github.com/pester/Pester/issues/604
 
.PARAMETER RegisterPackageSourceParam
Parameters for one Register-PSRepository
 
.PARAMETER RegisterViaPSRepository
When is set register via Register-PSRepository, otherwise use Register-PackageSource.
 
.EXAMPLE
Use exactly the same like for Register-PSRepository
 
#>


function Register-OriAzBopInternalPSRepository {
    
  [CmdletBinding()]
  param
  (   
    
    [parameter(Mandatory = $true, HelpMessage = 'Parameters for Register-PSRepository')]
    [Hashtable] $RegisterRepositoryParams,

    [Parameter(Mandatory = $false, HelpMessage = "When is set register via Register-PSRepository, otherwise use Register-PackageSource.")]
    [switch] $RegisterViaPSRepository

  )

  #in case of any error we want to stop execution, in stderr having the error. Use try-catch to handle errors if needed.
  $ErrorActionPreference = "Stop";
  Write-Verbose "-- Register-OriAzBopInternalPSRepository --"
  Write-Debug "RegisterRepositoryParams: $(ConvertTo-Json $RegisterRepositoryParams) "
  if ($RegisterViaPSRepository.IsPresent) {
    Write-Debug " Register via Register-PSRepository"
    Write-Verbose "-- End of Register-OriAzBopInternalPSRepository --"    
    return(Register-PSRepository @RegisterRepositoryParams)
  } 
  else {
    Write-Debug " Register via Register-PackageSource"
    Write-Verbose "-- End of Register-OriAzBopInternalPSRepository --"    
    return(Register-PackageSource @RegisterRepositoryParams)
  }

}