Skip to content
This repository was archived by the owner on Jul 19, 2024. It is now read-only.

Commit 7fff0d4

Browse files
committed
Splitted up functionality to Get-JenkinsUserInfo, and Get-JenkinsUserFullName.
1 parent fdc8d61 commit 7fff0d4

File tree

3 files changed

+39
-29
lines changed

3 files changed

+39
-29
lines changed

Diff for: Private/Get-JenkinsUserInfo.ps1

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
function Get-JenkinsUserInfo {
2+
[CmdletBinding()]
3+
param (
4+
[Parameter(Mandatory=$true)]
5+
[string] $Username
6+
)
7+
8+
if (!$script:AllUserInfo) {
9+
$script:AllUserInfo = [hashtable]::new()
10+
}
11+
12+
if ($userInfo = $AllUserInfo[$Username]) {
13+
return $userInfo
14+
} else {
15+
$response = Invoke-JenkinsRequest -Resource "/user/me/api/json"
16+
$script:AllUserInfo[$Username] = $response.Content
17+
return $AlluserInfo[$Username]
18+
}
19+
}

Diff for: Public/Get-JenkinsUserFullName.ps1

+6-14
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
1+
. "$PSScriptRoot\..\Private\Get-JenkinsUserInfo.ps1"
2+
13
function Get-JenkinsUserFullName {
24
[CmdletBinding()]
35
param (
46
[Parameter(Mandatory=$true)]
5-
[string] $Username,
6-
[Parameter(Mandatory=$true)]
7-
[securestring] $Password
7+
[string] $Username
88
)
99

10-
if (!$script:fullNamesByUser) {
11-
$script:fullNamesByUser = [hashtable]::new()
12-
}
13-
14-
if ($fullName = $fullNamesByUser[$Username]) {
15-
return $fullName
16-
} else {
17-
$response = Invoke-JenkinsRequest -Resource "/user/me/api/json"
18-
$script:fullNamesByUser[$Username] = $response.Content.fullName
19-
return $fullNamesByUser[$Username]
20-
}
10+
$userInfo = Get-JenkinsUserInfo -Username $Username
11+
$fullName = if ($null -ne $userInfo) { $userInfo.fullName } else { $null }
12+
return $fullName
2113
}

Diff for: Tests/Get-JenkinsUserFullName.Test.ps1

+14-15
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
Import-Module "$PSScriptRoot\..\ThreeShape.Jenkins.Beta.psm1" -Force
1+
Import-Module -Name (Get-ChildItem $PSScriptRoot\..\*.psm1 | Select-Object -first 1).FullName -Force
22
. "$PSScriptRoot\..\Public\Get-JenkinsUserFullName.ps1"
3+
. "$PSScriptRoot\..\Private\Get-JenkinsUserInfo.ps1"
34

45
Describe 'Get-JenkinsUserFullName method' {
56

67
AfterEach {
7-
$script:fullNamesByUser = $null
8+
$script:AllUserInfo = $null
89
}
910

1011
$Fullname1 = "Robot"
@@ -46,19 +47,17 @@ Describe 'Get-JenkinsUserFullName method' {
4647

4748
It 'Retrieves the fullname of the user' {
4849
$user = $UserInfo1.id
49-
$pass = "changeme" | ConvertTo-SecureString -AsPlainText -Force
5050

51-
Mock -CommandName Invoke-JenkinsRequest { return @{Content = $UserInfo1 } } -Verifiable
52-
$fullName = Get-JenkinsUserFullName -UserName $user -Password $pass
51+
Mock -CommandName Get-JenkinsUserInfo { return $UserInfo1 } -Verifiable
52+
$fullName = Get-JenkinsUserFullName -UserName $user
5353
$fullName | Should -BeExactly $Fullname1
5454
}
5555

5656
It 'It is looked up, cached and re-used' {
5757
$user = $UserInfo2.id
58-
$pass = "changeme" | ConvertTo-SecureString -AsPlainText -Force
5958

60-
Mock -CommandName Invoke-JenkinsRequest { return @{Content = $UserInfo2 } } -Verifiable
61-
$fullName = Get-JenkinsUserFullName -UserName $user -Password $pass
59+
Mock -CommandName Get-JenkinsUserInfo { return $UserInfo2 } -Verifiable
60+
$fullName = Get-JenkinsUserFullName -UserName $user
6261
$fullName | Should -BeExactly $Fullname2
6362
}
6463
}
@@ -67,11 +66,10 @@ Describe 'Get-JenkinsUserFullName method' {
6766

6867
It 'Requests for fullname, then looked up from cache subsequently' {
6968
$user = $UserInfo1.id
70-
$pass = "changeme" | ConvertTo-SecureString -AsPlainText -Force
7169

7270
Mock -CommandName Invoke-JenkinsRequest { return @{Content = $UserInfo1 } } -Verifiable
73-
Get-JenkinsUserFullName -UserName $user -Password $pass
74-
Get-JenkinsUserFullName -UserName $user -Password $pass
71+
Get-JenkinsUserFullName -UserName $user
72+
Get-JenkinsUserFullName -UserName $user
7573
Assert-MockCalled -CommandName Invoke-JenkinsRequest -Exactly 1
7674
}
7775
}
@@ -81,13 +79,14 @@ Describe 'Get-JenkinsUserFullName method' {
8179
It 'Requests for fullname, then looked up from cache subsequently' {
8280
$user1 = $UserInfo1.id
8381
$user2 = $UserInfo2.id
84-
$pass = "changeme" | ConvertTo-SecureString -AsPlainText -Force
8582

83+
#Mock -CommandName Get-JenkinsUserInfo { return $UserInfo1 } -Verifiable
8684
Mock -CommandName Invoke-JenkinsRequest { return @{Content = $UserInfo1 } } -Verifiable
87-
$name1 = Get-JenkinsUserFullName -UserName $user1 -Password $pass
85+
$name1 = Get-JenkinsUserFullName -UserName $user1
86+
#Mock -CommandName Get-JenkinsUserInfo { return $UserInfo2 } -Verifiable
8887
Mock -CommandName Invoke-JenkinsRequest { return @{Content = $UserInfo2 } } -Verifiable
89-
$name2 = Get-JenkinsUserFullName -UserName $user2 -Password $pass
90-
$name3 = Get-JenkinsUserFullName -UserName $user2 -Password $pass
88+
$name2 = Get-JenkinsUserFullName -UserName $user2
89+
$name3 = Get-JenkinsUserFullName -UserName $user2
9190

9291
$name1 | Should -Be $Fullname1
9392
$name2 | Should -Be $Fullname2

0 commit comments

Comments
 (0)