Test/public/integrations/sync-ProjectItemsBetweenProjects.test.ps1
function Test_UpdateProjectItemsBetweenProjects{ Reset-InvokeCommandMock Mock_DatabaseRoot $p625 = Get-Mock_Project_625 ; $owner0 = $p625.owner ; $projectNumber0 = $p625.number $p626 = Get-Mock_Project_626 ; $owner1 = $p626.owner ; $projectNumber1 = $p626.number $sourceOwner = $owner0 ; $sourceProjectNumber = $projectNumber0 $destinationOwner = $owner1 ; $destinationProjectNumber = $projectNumber1 MockCall_GetProject -MockProject $p625 MockCall_GetProject -MockProject $p626 $fieldlist = @("Int1", "Int2") $params = @{ SourceOwner = $sourceOwner SourceProjectNumber = $sourceProjectNumber DestinationOwner = $destinationOwner DestinationProjectNumber = $destinationProjectNumber FieldSlug = "pr1_" } $result = Update-ProjectItemsBetweenProjects -IncludeDoneItems @params Assert-IsNull -Object $result $staged = Get-ProjectItemStaged -Owner $owner -ProjectNumber $destinationProjectNumber $p = $p626.syncBtwPrj_625 Assert-AreEqual -Expected $p.staged.Count -Presented $staged.Count foreach ($itemId in $staged.Keys) { Assert-AreEqual -Expected $p.staged.$itemId.Count -Presented $staged.$itemId.Count foreach ($fieldId in $p.staged.$itemId.Keys) { Assert-AreEqual -Expected $p.staged.$itemId.$fieldId -Presented $staged.$itemId.$fieldId.Value } } } function Test_UpdateProjectItemsBetweenProjects_NoRefresh_NoRefresh{ Reset-InvokeCommandMock Mock_DatabaseRoot $p625 = Get-Mock_Project_625 ; $owner0 = $p625.owner ; $projectNumber0 = $p625.number $p626 = Get-Mock_Project_626 ; $owner1 = $p626.owner ; $projectNumber1 = $p626.number $sourceOwner = $owner0 ; $sourceProjectNumber = $projectNumber0 $destinationOwner = $owner1 ; $destinationProjectNumber = $projectNumber1 MockCall_GetProject -MockProject $p625 -Cache MockCall_GetProject -MockProject $p626 -Cache # Reset mocks to fail if mocks are called again Reset-InvokeCommandMock Mock_DatabaseRoot -NotReset # Act $params = @{ SourceOwner = $sourceOwner SourceProjectNumber = $sourceProjectNumber DestinationOwner = $destinationOwner DestinationProjectNumber = $destinationProjectNumber FieldSlug = "pr1_" } $result = Update-ProjectItemsBetweenProjects -IncludeDoneItems -NoRefreshDestination -NoRefreshSource @params Assert-IsNull -Object $result $staged = Get-ProjectItemStaged -Owner $destinationOwner -ProjectNumber $destinationProjectNumber $p = $p626.syncBtwPrj_625 Assert-AreEqual -Expected $p.staged.Count -Presented $staged.Count } function Test_SyncProjectItemsBetweenProjects_SameValues{ Reset-InvokeCommandMock Mock_DatabaseRoot MockCall_GetProject_700 $p = Get-Mock_Project_700 ; $owner = $p.owner ; $projectNumber = $p.number # Setting source and destination project the same $sourceProjectNumber = $projectNumber $destinationProjectNumber = $projectNumber $params = @{ SourceOwner = $owner SourceProjectNumber = $sourceProjectNumber DestinationOwner = $owner DestinationProjectNumber = $destinationProjectNumber } # TODO : this call takes long on every test. Make it quicker $result = Update-ProjectItemsBetweenProjects @params Assert-IsNull -Object $result -Comment "func always should return null" $staged = Get-ProjectItemStaged -Owner $owner -ProjectNumber $destinationProjectNumber Assert-Count -Expected 0 -Presented $staged.Keys } |