Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/Resources/Resources.Test/ScenarioTests/ResourceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -200,5 +200,12 @@ public void TestRemoveASetOfResourcesTest()
{
TestRunner.RunTestScript("Test-RemoveASetOfResources");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestGetComplexResourceByDifferentFiltersTest()
{
TestRunner.RunTestScript("Test-GetComplexResourceByDifferentFilters");
}
}
}
78 changes: 77 additions & 1 deletion src/Resources/Resources.Test/ScenarioTests/ResourceTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -929,4 +929,80 @@ function Test-SetAResourceTagCase
{
Clean-ResourceGroup $rgname
}
}
}

<#
.SYNOPSIS
Tests getting parent and child resources with different filter.
.DESCRIPTION
#>
function Test-GetComplexResourceByDifferentFilters
{
# Setup
$rgname = Get-ResourceGroupName
$rnameParent = Get-ResourceName
$rnameChild = Get-ResourceName
$resourceTypeParent = "Microsoft.Sql/servers"
$resourceTypeChild = "Microsoft.Sql/servers/databases"
$rglocation = "eastus"
$location = "eastus"

# Test
Write-Debug "New-AzResourceGroup -Name $rgname -Location $rglocation"
$group = New-AzResourceGroup -Name $rgname -Location $rglocation

$password = getAssetName 'P@1Long'

$apiversion = "2014-04-01"
Write-Debug "New-AzResource -Name $rnameParent -Location $location -ResourceGroupName $rgname -ResourceType $resourceTypeParent -PropertyObject @{`"administratorLogin`" = `"adminuser`"; `"administratorLoginPassword`" = $password} -ApiVersion $apiVersion -Force"
$actualParent = New-AzResource -Name $rnameParent -Location $location -ResourceGroupName $rgname -ResourceType $resourceTypeParent -PropertyObject @{"administratorLogin" = "adminuser"; "administratorLoginPassword" = $password} -ApiVersion $apiVersion -Force
#$expectedParent = Get-AzResource -ResourceId $actualParent.ResourceId
$expectedParent = Get-AzResource -Name $rnameParent -ResourceGroupName $rgname
Assert-NotNull $expectedParent
Write-Debug $expectedParent.ResourceId

Write-Debug "New-AzResource -Location $location -ResourceGroupName $rgname -ResourceType $resourceTypeChild -ResourceName $rnameParent/$rnameChild -PropertyObject @{`"collation`" = `"SQL_Latin1_General_CP1_CI_AS`"; `"maxSizeBytes`" = `"1073741824`"} -ApiVersion $apiVersion -Force"
$actualChild = New-AzResource -Location $location -ResourceGroupName $rgname -ResourceType $resourceTypeChild -ResourceName $rnameParent/$rnameChild -PropertyObject @{"collation" = "SQL_Latin1_General_CP1_CI_AS"; "maxSizeBytes" = "1073741824"} -ApiVersion $apiVersion -Force
#$expectedChild = Get-AzResource -ResourceId $actualChild.ResourceId
$expectedChild = Get-AzResource -Name $rnameChild -ResourceGroupName $rgname
Assert-NotNull $expectedChild
Write-Debug $expectedChild.ResourceId
Write-Debug $expectedChild.Name
Write-Debug $expectedChild.ResourceName
<#
$expectedWithParentFilter = Get-AzResource -ResourceGroupName $rgname -Name $rnameParent
Assert-NotNull $expectedWithParentFilter
Assert-AreEqual $rnameParent $expectedWithParentFilter.Name

$expectedWithChildFilter = Get-AzResource -ResourceGroupName $rgname -Name $rnameChild
Assert-NotNull $expectedWithChildFilter
Assert-AreEqual $rnameParent/$rnameChild $expectedWithChildFilter.Name
#>
$expectedChildWithParentChildFilter = Get-AzResource -ResourceGroupName $rgname -Name $rnameParent/$rnameChild
Assert-NotNull $expectedChildWithParentChildFilter
Assert-AreEqual $rnameParent/$rnameChild $expectedChildWithParentChildFilter.Name

$list = Get-AzResource -ResourceGroupName $rgname

$parentFromList = $list | where {$_.ResourceType -eq $resourceTypeParent} | Select-Object -First 1
$childFromList = $list | where {$_.ResourceType -eq $resourceTypeChild} | Select-Object -Last 1

$listOfServers = Get-AzResource -ResourceType $resourceTypeParent -ResourceGroupName $rgname
$listOfDatabases = Get-AzResource -ResourceType $resourceTypeChild -ResourceGroupName $rgname

# Assert
Assert-AreEqual $expectedParent.Name $actualParent.ResourceName
Assert-AreEqual $expectedChild.Name $actualChild.ResourceName
Assert-AreEqual $expectedParent.ResourceType $actualParent.ResourceType
Assert-AreEqual $expectedChild.ResourceType $actualChild.ResourceType

#ToDo: Get-AzResource return object not equal to New-AzResource
Assert-AreEqual 3 $list.Count
Assert-AreEqual $expectedParent.Name $parentFromList.Name
Assert-AreEqual $expectedChild.Name $childFromList.Name
Assert-AreEqual $expectedParent.ResourceType $parentFromList.ResourceType
Assert-AreEqual $expectedChild.ResourceType $childFromList.ResourceType

Assert-AreEqual 1 $listOfServers.Count
Assert-AreEqual 2 $listOfDatabases.Count
}
Loading