Test/public/project_fields_list.test.ps1
function Test_GetProjectFields_SUCCESS{ 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 Assert-Count -Expected 19 -Presented $result $result = $result | Sort-Object -Property Name function AssertField($index, $expectedName, $expectedDataType, $expectedType){ Assert-AreEqual -Presented $result[$index].Name -Expected $expectedName Assert-AreEqual -Presented $result[$index].dataType -Expected $expectedDataType } AssertField -Index 0 -ExpectedName "Assignees" -ExpectedDataType "ASSIGNEES" AssertField -Index 1 -ExpectedName "Body" -ExpectedDataType "BODY" AssertField -Index 2 -ExpectedName "Comment" -ExpectedDataType "TEXT" AssertField -Index 3 -ExpectedName "End Date" -ExpectedDataType "DATE" AssertField -Index 4 -ExpectedName "Labels" -ExpectedDataType "LABELS" AssertField -Index 5 -ExpectedName "Linked pull requests" -ExpectedDataType "LINKED_PULL_REQUESTS" AssertField -Index 6 -ExpectedName "Milestone" -ExpectedDataType "MILESTONE" AssertField -Index 7 -ExpectedName "Next Action Date" -ExpectedDataType "DATE" AssertField -Index 8 -ExpectedName "Priority" -ExpectedDataType "SINGLE_SELECT" AssertField -Index 9 -ExpectedName "Repository" -ExpectedDataType "REPOSITORY" AssertField -Index 10 -ExpectedName "Reviewers" -ExpectedDataType "REVIEWERS" AssertField -Index 11 -ExpectedName "Severity" -ExpectedDataType "SINGLE_SELECT" AssertField -Index 12 -ExpectedName "Start Date" -ExpectedDataType "DATE" AssertField -Index 13 -ExpectedName "Status" -ExpectedDataType "SINGLE_SELECT" AssertField -Index 14 -ExpectedName "TimeTracker" -ExpectedDataType "NUMBER" AssertField -Index 15 -ExpectedName "Title" -ExpectedDataType "TITLE" AssertField -Index 16 -ExpectedName "Tracked by" -ExpectedDataType "TRACKED_BY" AssertField -Index 17 -ExpectedName "Tracks" -ExpectedDataType "TRACKS" AssertField -Index 18 -ExpectedName "UserStories" -ExpectedDataType "NUMBER" } 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" } |