tests/PSTS.build.Tests.ps1
if ($PSScriptRoot -eq $null) { $PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition } . "$PSScriptRoot\helper.ps1" describe 'Get-PSTSBuildDefinition-byId' { # Arrange $data = @([BuildDefinition]::new(); [BuildDefinition]::new()) $expectedResult = New-Object -TypeName "PSObject" $expectedResult | Add-Member -MemberType NoteProperty "Count" -Value $data.Count $expectedResult | Add-Member -MemberType NoteProperty "value" -Value $data arrange -result $expectedResult # Act $result = Get-PSTSBuildDefinition ` -project fakeProject ` -buildId fakeId #Assert It "Uses the mock" { Assert-VerifiableMock } it "should return $($expectedResult.value)" { $result.Count | should -Be $expectedResult.value.Count } } describe 'Get-PSTSBuildDefinition-byFile' { # Arrange $data = @([BuildDefinition]::new(); [BuildDefinition]::new()) $expectedResult = New-Object -TypeName "PSObject" $expectedResult | Add-Member -MemberType NoteProperty "Count" -Value $data.Count $expectedResult | Add-Member -MemberType NoteProperty "value" -Value $data arrange -result $expectedResult # Act $result = Get-PSTSBuildDefinition ` -inFile "./assets/BuildDefinition.json" it "should return $true" { $result.name | should -Be "tetris2" } } describe 'Export-PSTSBuildDefinition' { # Arrange Mock -Verifiable -ModuleName PSTS Get-PSTSBuildDefinition -MockWith { $obj = [PSCustomObject]@{ quality = "fakeQuality" authoredBy = $null drafts = $null queue = $null id = 1 name = "fakeName" _links = $null url = $null uri = $null path = $null type = $null queueStatus = $null revision = $null createdDate = Get-Date project = $null }::new() return $obj } # Act Export-PSTSBuildDefinition ` -project fakeProject ` -buildId 1 ` -outFile ".\fakeExport.json" #Assert It "Uses the mock" { Assert-VerifiableMock } It "file should -Be same as result" { [BuildDefinition]$fileContent = Get-Content ".\fakeExport.json" | ConvertFrom-Json $fileContent.value | Should -Be $obj.value } } describe 'Update-PSTSAuthorizedResource' { # Arrange $data = @([AuthorizedResource]::new(); [AuthorizedResource]::new()) $expectedResult = New-Object -TypeName "PSObject" $expectedResult | Add-Member -MemberType NoteProperty "Count" -Value $data.Count $expectedResult | Add-Member -MemberType NoteProperty "value" -Value $data arrange -result $expectedResult # Act $result = Update-PSTSAuthorizedResource ` -project fakeProject ` -authorized $true ` -type fakeType ` -name fakeName ` -id fakeId #Assert It "Uses the mock" { Assert-VerifiableMock } it "should return $($expectedResult.value)" { $result.Count | should -Be $expectedResult.value.Count } } describe 'Add-PSTSBuildDefinitionProperty' { # Arrange $expectedResult = [BuildDefinition]::new() $expectedResult.name = "fakeName" arrange -result $expectedResult # Act $file = "fakepath" $result = Add-PSTSBuildDefinitionProperty -buildDefinition $expectedResult -name "fakeName" #Assert it "should return fakePath and fakeName" { $result.name | should -Be $expectedResult.name } } describe 'Add-PSTSBuildDefinition-byObject' { # Arrange $expectedResult = [BuildDefinition]::new() $expectedResult.name = "fakeBuild" arrange -result $expectedResult # Act $result = Add-PSTSBuildDefinition -project fakeProject -buildDefinition $expectedResult #Assert It "Uses the mock" { Assert-VerifiableMock } it "should return $($expectedResult.value)" { $result.name | should -Be $expectedResult.name } } describe 'Add-PSTSBuildDefinition-byFile' { # Arrange $expectedResult = [BuildDefinition]::new() $expectedResult.name = "fakeBuild" arrange -result $expectedResult # Act $file = "fakepath" $result = Add-PSTSBuildDefinition -project fakeProject -inFile $file #Assert It "Uses the mock" { Assert-VerifiableMock } it "should return $($expectedResult.value)" { $result.name | should -Be $expectedResult.name } } describe 'Add-PSTSBuildDefinitionTrigger' { # Arrange $buildDefinition = [BuildDefinition]::new() [BuildDefinitionTrigger]$trigger = [BuildDefinitionTrigger]::new() $buildDefinition.triggers+=$trigger arrange -result $buildDefinition # Act $result = Add-PSTSBuildDefinitionTrigger -buildDefinition $buildDefinition -environment fakeEnvironment -targetBuildName $true #Assert it "should return $($result)" { $result.triggers.branchFilters | should -HaveCount 3 $result.triggers.branchFilters[1] | should -Contain("+fakeEnvironment") $result.triggers.triggerType[1] | should -Be "continuousIntegration" $result.triggers.branchFilters[2] | should -Contain("+refs/heads/") $result.triggers.triggerType[2] | should -Be "buildCompletion" $result.triggers[2].definition.project | should -Not -Be $null $result.triggers[2].requiresSuccessfulBuild | should -Be $true } } |