Test/public/project_fields_list.test.ps1
function Test_GetProjectFields_SUCCESS_AllFields{ Reset-InvokeCommandMock Mock_DatabaseRoot $p = Get-Mock_Project_700 ; $owner = $p.Owner ; $projectNumber = $p.Number MockCall_GetProject -MockProject $p -SkipItems $result = Get-ProjectFields -Owner $owner -ProjectNumber $projectNumber Assert-Count -Expected $p.fields.totalCount -Presented $result $result = $result | Sort-Object -Property Name foreach ($expField in $p.fields.list){ $f = $result | Where-Object { $_.Name -eq $expField.Name } Assert-AreEqual -Presented $f.Name -Expected $expField.Name Assert-AreEqual -Presented $f.dataType -Expected $expField.dataType } # Body $f = $result | Where-Object { $_.Name -eq "Body" } Assert-AreEqual -Presented $f.Name -Expected "Body" Assert-AreEqual -Presented $f.dataType -Expected "BODY" # AddComment $f = $result | Where-Object { $_.Name -eq "AddComment" } Assert-AreEqual -Presented $f.Name -Expected "AddComment" Assert-AreEqual -Presented $f.dataType -Expected "ADDCOMMENT" } function Test_GetProjectFields_Fail_Comments_Present{ Reset-InvokeCommandMock Mock_DatabaseRoot $p = Get-Mock_Project_700 ; $owner = $p.Owner ; $projectNumber = $p.Number MockCall_GitHubOrgProjectWithFields -Owner $owner -ProjectNumber $projectNumber -FileName $p.projectFile_WrongField -SkipItems $hasthrow = $false try{ $null = Get-ProjectFields -Owner $owner -ProjectNumber $projectNumber } catch { $hasthrow = $true $resultErrorMessage = $_.Exception.Message } Assert-IsTrue -Condition $hasthrow $errorMessage = "Set-ContentFields: [ Body ] field already exists. Please remove or rename this field from the project" Assert-AreEqual -Expected $errorMessage -Presented $resultErrorMessage } function Test_GetProjectFields_SUCCESS_FilterByName{ Reset-InvokeCommandMock Mock_DatabaseRoot $Owner = "SomeOrg" ; $ProjectNumber = 164 # title refrence with differnt case and spaces $filter = "Title" MockCall_GitHubOrgProjectWithFields -Owner $owner -ProjectNumber $projectNumber -FileName 'projectV2-skipitems.json' -SkipItems $result = Get-ProjectFields -Owner $owner -ProjectNumber $projectNumber -Name $filter Assert-Count -Expected 1 -Presented $result Assert-AreEqual -Presented $result[0].Name -Expected "Title" ; Assert-AreEqual -Presented $result[0].dataType -Expected "TITLE" } function Test_GetProjectFields_SUCCESS_MoreInfo{ Reset-InvokeCommandMock Mock_DatabaseRoot $Owner = "SomeOrg" ; $ProjectNumber = 164 MockCall_GitHubOrgProjectWithFields -Owner $owner -ProjectNumber $projectNumber -FileName 'projectV2-skipitems.json' -SkipItems $result = Get-ProjectFields -Owner $owner -ProjectNumber $projectNumber -Name "Status" Assert-Count -Expected 1 -Presented $result Assert-AreEqual -Presented $result[0].Name -Expected "Status" ; Assert-AreEqual -Presented $result[0].dataType -Expected "SINGLE_SELECT" Assert-Count -Expected 3 -Presented $result[0].MoreInfo Assert-Contains -Presented $result[0].MoreInfo -Expected "Todo" Assert-Contains -Presented $result[0].MoreInfo -Expected "In Progress" Assert-Contains -Presented $result[0].MoreInfo -Expected "Done" } |