Test/public/issues/Add-ProjectSubIssue.test.ps1

function Test_AddProjectSubIssue_SUCCESS{

    $p = Get-Mock_Project_700 ; $owner = $p.Owner ; $projectNumber = $p.Number


    $parent  = $p.Issue
    $i0 = $p.subIssuesToAdd[0]
    $i1 = $p.subIssuesToAdd[1]
    
    MockCall_GetProject $p -Cache

    MockCallJson -Command "Invoke-AddSubIssue -IssueId $($parent.contentId) -SubIssueUrl $($i0.url) -ReplaceParent False" -File "$($i0.addSubIssueMockfile)"
    MockCallJson -Command "Invoke-AddSubIssue -IssueId $($parent.contentId) -SubIssueUrl $($i1.url) -ReplaceParent False" -File "$($i1.addSubIssueMockfile)"
    

    # Act add SubIssue 1
    $params = @{
        Owner = $owner
        ProjectNumber = $projectNumber
        ItemId = $parent.Id
    }

    $result = Add-ProjectSubIssueDirect -SubIssueUrl $i0.url @params

    # Assert
    Assert-IsTrue -Condition $result

    $item = Get-ProjectItem -ItemId $parent.Id -Owner $owner -ProjectNumber $projectNumber

    Assert-AreEqual -Expected 1 -Presented $item.subIssues.Count
    Assert-Contains -Expected $i0.contentId -Presented $item.subIssues[0].id

    # Act add SubIssue 2
     $result = Add-ProjectSubIssueDirect -SubIssueUrl $i1.url @params

    # Assert
    Assert-IsTrue -Condition $result
    $item = Get-ProjectItem -ItemId $parent.Id -Owner $owner -ProjectNumber $projectNumber
    Assert-AreEqual -Expected 2 -Presented $item.subIssues.Count
    Assert-Contains -Expected $i0.contentId -Presented $item.subIssues[0].id
    Assert-Contains -Expected $i1.contentId -Presented $item.subIssues[1].id
}

function Test_AddProjectSubIssue_FAIL_ALREADY_HAS_PARENT {

    Assert-NotImplemented
}

function Test_GetProjectSubIssue_SUCCESS {

    $p = Get-Mock_Project_700 ; $owner = $p.Owner ; $projectNumber = $p.Number
    $i = $p.subIssueToShow
    
    MockCall_GetProject $p -SkipItems
    MockCallJson -Command "Invoke-GetItem -ItemId $($i.id)" -File "invoke-getitem-$($i.id).json"

    $result  = Get-ProjectItem -ItemId $i.id -Owner $owner -ProjectNumber $projectNumber -Force

    Assert-Count -Expected 3 -Presented $result.subIssues
    $i.subIssues | ForEach-Object {
        Assert-Contains -Expected $_.contentId -Presented $result.subIssues.id
    }
}