From d16c1561210b75895a92f0844bc4a60b6ad2f9d8 Mon Sep 17 00:00:00 2001 From: larisaborodina Date: Wed, 4 Aug 2021 18:35:19 -0700 Subject: [PATCH] Add pester tests for all the cmdlets. --- ...zsContainerRegistryCapacity.Recording.json | 43 ++++ ...Get-AzsContainerRegistryCapacity.Tests.ps1 | 39 ++++ ...tainerRegistryConfiguration.Recording.json | 43 ++++ ...zsContainerRegistryConfiguration.Tests.ps1 | 38 ++++ ...t-AzsContainerRegistryQuota.Recording.json | 207 ++++++++++++++++++ .../Get-AzsContainerRegistryQuota.Tests.ps1 | 89 ++++++++ ...ontainerRegistrySetupStatus.Recording.json | 43 ++++ ...-AzsContainerRegistrySetupStatus.Tests.ps1 | 42 ++++ ...w-AzsContainerRegistryQuota.Recording.json | 78 +++++++ .../New-AzsContainerRegistryQuota.Tests.ps1 | 25 +++ .../Read-AzsContainerRegistry.Recording.json | 43 ++++ .../test/Read-AzsContainerRegistry.Tests.ps1 | 47 ++++ ...tainerRegistryConfiguration.Recording.json | 160 ++++++++++++++ ...zsContainerRegistryConfiguration.Tests.ps1 | 26 +++ ...e-AzsContainerRegistryQuota.Recording.json | 195 +++++++++++++++++ ...Remove-AzsContainerRegistryQuota.Tests.ps1 | 28 +++ ...tainerRegistryConfiguration.Recording.json | 115 ++++++++++ ...zsContainerRegistryConfiguration.Tests.ps1 | 25 +++ ...t-AzsContainerRegistryQuota.Recording.json | 115 ++++++++++ .../Set-AzsContainerRegistryQuota.Tests.ps1 | 83 +++++++ ...t-AzsContainerRegistrySetup.Recording.json | 38 ++++ .../Start-AzsContainerRegistrySetup.Tests.ps1 | 19 ++ 22 files changed, 1541 insertions(+) create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Tests.ps1 create mode 100644 src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Recording.json create mode 100644 src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Recording.json new file mode 100644 index 00000000..db56235e --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Recording.json @@ -0,0 +1,43 @@ +{ + "Get-AzsContainerRegistryCapacity+[NoContext]+TestGetContainerRegistryCapacity+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/capacities?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/capacities?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "1" ], + "x-ms-client-request-id": [ "6d2216ce-c1ed-4d4a-9e76-537a99939cd9" ], + "CommandName": [ "Get-AzsContainerRegistryCapacity" ], + "FullCommandName": [ "Get-AzsContainerRegistryCapacity_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "4ae3898e-ce0f-4628-bd90-fc05b695bd2e" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14816" ], + "x-ms-correlation-request-id": [ "f8851610-9220-4e6e-aeda-1fd1e000d471" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012053Z:f8851610-9220-4e6e-aeda-1fd1e000d471" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:20:52 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "334" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/capacities/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/capacities\",\"properties\":{\"maximumCapacityInGiB\":0,\"registriesConsumptionInGiB\":0.00,\"allowPush\":false}}]}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Tests.ps1 new file mode 100644 index 00000000..a89cc119 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryCapacity.Tests.ps1 @@ -0,0 +1,39 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzsContainerRegistryCapacity.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Get-AzsContainerRegistryCapacity' { + BeforeEach { + + function ValidateCapacity { + param( + [Parameter(Mandatory = $true)] + $Capacity + ) + $capacity | Should Not Be $null + $capacity.MaximumCapacityInGiB | Should Not Be $null + $capacity.RegistriesConsumptionInGiB | Should Not Be $null + } + } + + AfterEach { + $global:Client = $null + } + + It "TestGetContainerRegistryCapacity" -Skip:$('TestGetContainerRegistryCapacity' -in $global:SkippedTests) { + $global:TestName = 'TestGetContainerRegistryCapacity' + + $result = Get-AzsContainerRegistryCapacity + $result | Should Not Be $null + ValidateCapacity -Capacity $result + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Recording.json new file mode 100644 index 00000000..08be894b --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Recording.json @@ -0,0 +1,43 @@ +{ + "Get-AzsContainerRegistryConfiguration+[NoContext]+TestGetContainerRegistryConfiguration+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "2" ], + "x-ms-client-request-id": [ "043e8e3b-f7f6-4d92-90a5-e3e1c85aef1b" ], + "CommandName": [ "Get-AzsContainerRegistryConfiguration" ], + "FullCommandName": [ "Get-AzsContainerRegistryConfiguration_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "03b16a0e-d695-414b-8ed0-142bbc0a3fec" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14814" ], + "x-ms-correlation-request-id": [ "0bd91721-dec8-4774-84e7-a835b35359ad" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012054Z:0bd91721-dec8-4774-84e7-a835b35359ad" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:20:54 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "290" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}]}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Tests.ps1 new file mode 100644 index 00000000..e02ab919 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryConfiguration.Tests.ps1 @@ -0,0 +1,38 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzsContainerRegistryConfiguration.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Get-AzsContainerRegistryConfiguration' { + BeforeEach { + + function ValidateConfiguration { + param( + [Parameter(Mandatory = $true)] + $Configuration + ) + $configuration | Should Not Be $null + $configuration.MaximumCapacityInGib | Should Not Be $null + } + } + + AfterEach { + $global:Client = $null + } + + It "TestGetContainerRegistryConfiguration" -Skip:$('TestGetContainerRegistryConfiguration' -in $global:SkippedTests) { + $global:TestName = 'TestGetContainerRegistryConfiguration' + + $result = Get-AzsContainerRegistryConfiguration + $result | Should Not Be $null + ValidateConfiguration -Configuration $result + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Recording.json new file mode 100644 index 00000000..f5e2dfa0 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Recording.json @@ -0,0 +1,207 @@ +{ + "Get-AzsContainerRegistryQuota+[NoContext]+TestListAllContainerRegistryQuotas+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "3" ], + "x-ms-client-request-id": [ "709deaf3-7180-4d0e-8230-18c8baeee9b4" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "8fd1eefa-aa3a-450c-bcf3-7b8dbb73e973" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14812" ], + "x-ms-correlation-request-id": [ "a25b38e0-2a04-4445-af53-4f07b57bbaa2" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012056Z:a25b38e0-2a04-4445-af53-4f07b57bbaa2" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:20:56 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "316" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}]}", + "isContentBase64": false + } + }, + "Get-AzsContainerRegistryQuota+[NoContext]+TestGetContainerRegistryQuota+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "4" ], + "x-ms-client-request-id": [ "9ce6286c-4c39-41f0-bbc3-3bdf10aa37b3" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "5c3bf296-9dcb-4790-97b7-f3f53f70b757" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14810" ], + "x-ms-correlation-request-id": [ "00170810-3f4e-4c4b-95f5-625decb4e3aa" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012058Z:00170810-3f4e-4c4b-95f5-625decb4e3aa" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:20:57 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "316" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}]}", + "isContentBase64": false + } + }, + "Get-AzsContainerRegistryQuota+[NoContext]+TestGetContainerRegistryQuota+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default%20Quota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "5" ], + "x-ms-client-request-id": [ "4afc6765-644a-45e2-95f5-b0a967cba17f" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_GetViaIdentity" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "f6081870-ea5a-48f1-84f6-70866f1dae90" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14809" ], + "x-ms-correlation-request-id": [ "4c4beea1-c91f-4a7e-99b3-357bdfdb4d95" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012058Z:4c4beea1-c91f-4a7e-99b3-357bdfdb4d95" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:20:57 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "304" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}", + "isContentBase64": false + } + }, + "Get-AzsContainerRegistryQuota+[NoContext]+TestGetAllContainerRegistryQuotas+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "6" ], + "x-ms-client-request-id": [ "127e8835-9ae4-4de9-8620-8610ecc68ca8" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "d639aefc-19f3-4336-b605-6b6d7ed3a6a0" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14807" ], + "x-ms-correlation-request-id": [ "85d764a5-e255-4264-9fbd-8f6b78a8d35d" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012100Z:85d764a5-e255-4264-9fbd-8f6b78a8d35d" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:00 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "316" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}]}", + "isContentBase64": false + } + }, + "Get-AzsContainerRegistryQuota+[NoContext]+TestGetAllContainerRegistryQuotas+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default%20Quota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "7" ], + "x-ms-client-request-id": [ "3429871a-f70b-4091-8451-6915a29e6e0d" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_GetViaIdentity" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "e6b1ed8e-d791-4ee5-92e8-0da3ee31d260" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14806" ], + "x-ms-correlation-request-id": [ "5a88e263-6c77-4a62-9928-dc634f7ebab3" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012100Z:5a88e263-6c77-4a62-9928-dc634f7ebab3" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:00 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "304" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Tests.ps1 new file mode 100644 index 00000000..c3704b3a --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistryQuota.Tests.ps1 @@ -0,0 +1,89 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzsContainerRegistryQuota.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Get-AzsContainerRegistryQuota' { + BeforeEach { + + function ValidateContainerRegistryQuota { + param( + [Parameter(Mandatory = $true)] + $containerRegistryQuota + ) + # Resource + $containerRegistryQuota | Should Not Be $null + + # Validate ContainerRegistry quota properties + $containerRegistryQuota.CapacityPerRegistryInGib | Should Not Be $null + $containerRegistryQuota.NumberOfRegistry | Should Not Be $null + $containerRegistryQuota.Type | Should Not Be $null + $containerRegistryQuota.Id | Should Not Be $null + $containerRegistryQuota.Name | Should Not Be $null + } + + function AssertAreEqual { + param( + [Parameter(Mandatory = $true)] + $expected, + [Parameter(Mandatory = $true)] + $found + ) + # Resource + if ($null -eq $expected) { + $found | Should Be $null + } + else { + $found | Should Not Be $null + # Validate ContainerRegistry quota properties + $expected.CapacityPerRegistryInGib | Should Be $found.CapacityPerRegistryInGib + $expected.NumberOfRegistry | Should Be $found.NumberOfRegistry + } + } + } + + AfterEach { + $global:Client = $null + } + + It "TestListAllContainerRegistryQuotas" -Skip:$('TestListAllContainerRegistryQuotas' -in $global:SkippedTests) { + $global:TestName = 'TestListAllContainerRegistryQuotas' + + $quotas = Get-AzsContainerRegistryQuota + foreach ($quota in $quotas.Value) { + ValidateContainerRegistryQuota -containerRegistryQuota $quota + } + } + + It "TestGetContainerRegistryQuota" -Skip:$('TestGetContainerRegistryQuota' -in $global:SkippedTests) { + $global:TestName = 'TestGetContainerRegistryQuota' + + $quota = Get-AzsContainerRegistryQuota + if ($quota -as [Array]) + { + $quota = $quota[0] + } + $retrievedQuota = Get-AzsContainerRegistryQuota -InputObject $quota + ValidateContainerRegistryQuota -containerRegistryQuota $retrievedQuota + AssertAreEqual -expected $quota -found $retrievedQuota + } + + It "TestGetAllContainerRegistryQuotas" -Skip:$('TestGetAllContainerRegistryQuotas' -in $global:SkippedTests) { + $global:TestName = 'TestGetAllContainerRegistryQuotas' + + $quotas = Get-AzsContainerRegistryQuota + foreach ($quota in $quotas -as [Array]) { + $result = Get-AzsContainerRegistryQuota -InputObject $quota + ValidateContainerRegistryQuota -containerRegistryQuota $quota + AssertAreEqual -expected $quota -found $result + } + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Recording.json new file mode 100644 index 00000000..b44df6c5 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Recording.json @@ -0,0 +1,43 @@ +{ + "Get-AzsContainerRegistrySetupStatus+[NoContext]+TestGetContainerRegistrySetupStatus+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "8" ], + "x-ms-client-request-id": [ "51b273be-83e3-45e4-9098-0c9dcb0ecf35" ], + "CommandName": [ "Get-AzsContainerRegistrySetupStatus" ], + "FullCommandName": [ "Get-AzsContainerRegistrySetupStatus_Get" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "b4ab6fba-627a-4f21-8515-bda499355e06" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14804" ], + "x-ms-correlation-request-id": [ "25cdcfbf-d93e-4cdf-8947-e1e3dde5fcc8" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012103Z:25cdcfbf-d93e-4cdf-8947-e1e3dde5fcc8" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:03 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "250" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup/value\",\"name\":\"redmond/value\",\"type\":\"Microsoft.ContainerRegistry.Setup/locations/setup\",\"properties\":{\"status\":\"Running\"}}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Tests.ps1 new file mode 100644 index 00000000..04c50441 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Get-AzsContainerRegistrySetupStatus.Tests.ps1 @@ -0,0 +1,42 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzsContainerRegistrySetupStatus.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Get-AzsContainerRegistrySetupStatus' { + + BeforeEach { + + function ValidateSetupStatus { + param( + [Parameter(Mandatory = $true)] + $SetupStatus + ) + $setupStatus | Should Not Be $null + $setupStatus.Id | Should Not Be $null + $setupStatus.Name | Should Not Be $null + $setupStatus.Type | Should Not Be $null + $setupStatus.Status | Should Not Be $null + } + } + + AfterEach { + $global:Client = $null + } + + It "TestGetContainerRegistrySetupStatus" -Skip:$('TestGetContainerRegistrySetupStatus' -in $global:SkippedTests) { + $global:TestName = 'TestGetContainerRegistrySetupStatus' + + $result = Get-AzsContainerRegistrySetupStatus + $result | Should Not Be $null + ValidateSetupStatus -SetupStatus $result + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Recording.json b/src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Recording.json new file mode 100644 index 00000000..0456489b --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Recording.json @@ -0,0 +1,78 @@ +{ + "New-AzsContainerRegistryQuota+[NoContext]+TestCreateStorageQuota+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestCreateQuota?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestCreateQuota?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"numberOfRegistries\": 20,\r\n \"capacityPerRegistryInGiB\": 20\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "95" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "c7de1ba7-47e6-4a13-a0dd-2000c74ce26b" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1175" ], + "x-ms-correlation-request-id": [ "6e1ab911-1af6-46f0-b585-098f79aa0c0d" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012104Z:6e1ab911-1af6-46f0-b585-098f79aa0c0d" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:04 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "307" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestCreateQuota\",\"name\":\"redmond/TestCreateQuota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":20,\"numberOfRegistries\":20}}", + "isContentBase64": false + } + }, + "New-AzsContainerRegistryQuota+[NoContext]+TestCreateStorageQuota+$DELETE+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestCreateQuota?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "DELETE", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestCreateQuota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "10" ], + "x-ms-client-request-id": [ "8422bac8-8062-41ee-8347-20ff4832f646" ], + "CommandName": [ "Remove-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Remove-AzsContainerRegistryQuota_Delete" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "219eeb35-57ab-4d95-87f8-32630d6bca53" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-deletes": [ "14987" ], + "x-ms-correlation-request-id": [ "72ce9eec-c617-49f6-84d3-6c4045c3a028" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012106Z:72ce9eec-c617-49f6-84d3-6c4045c3a028" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:06 GMT" ] + }, + "ContentHeaders": { + "Expires": [ "-1" ], + "Content-Length": [ "0" ] + }, + "Content": null, + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Tests.ps1 new file mode 100644 index 00000000..93872b84 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/New-AzsContainerRegistryQuota.Tests.ps1 @@ -0,0 +1,25 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'New-AzsContainerRegistryQuota.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'New-AzsContainerRegistryQuota' { + It "TestCreateStorageQuota" -Skip:$('TestCreateContainerRegistryQuota' -in $global:SkippedTests) { + $global:TestName = 'TestCreateContainerRegistryQuota' + + $name = "TestCreateQuota" + $quota = New-AzsContainerRegistryQuota -CapacityPerRegistryInGib 20 -NumberOfRegistry 20 -Name $name + $quota | Should Not Be $null + $quota.CapacityPerRegistryInGib | Should Be 20 + $quota.NumberOfRegistry | Should Be 20 + Remove-AzsContainerRegistryQuota -Name $name + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Recording.json new file mode 100644 index 00000000..92f035b0 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Recording.json @@ -0,0 +1,43 @@ +{ + "Read-AzsContainerRegistry+[NoContext]+TestGetContainerRegistryRegistry+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/registries?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/registries?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "11" ], + "x-ms-client-request-id": [ "9c9b9b45-a41e-4ef6-94cd-8ec31f6e60a6" ], + "CommandName": [ "Read-AzsContainerRegistry" ], + "FullCommandName": [ "Read-AzsContainerRegistry_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "34d56e43-4e01-4490-aad5-a361dff8d16c" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14800" ], + "x-ms-correlation-request-id": [ "447e03e3-a9a1-44db-adc5-cb35234e4018" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012107Z:447e03e3-a9a1-44db-adc5-cb35234e4018" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:07 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "641" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/registries/testregistry01\",\"name\":\"redmond/testregistry01\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/registries\",\"properties\":{\"registryId\":\"/subscriptions/ff9a8f9f-5e66-42d4-aa63-d6c72f6a225d/resourceGroups/acrtenanttestrg/providers/Microsoft.ContainerRegistry/registries/testregistry01\",\"name\":\"testregistry01\",\"location\":\"redmond\",\"creationDate\":\"2021-07-29T03:16:45.0110378Z\",\"subscriptionId\":\"ff9a8f9f-5e66-42d4-aa63-d6c72f6a225d\",\"resourceGroup\":\"acrtenanttestrg\",\"registrySizeInBytes\":8864}}]}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Tests.ps1 new file mode 100644 index 00000000..9ca2bc6b --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Read-AzsContainerRegistry.Tests.ps1 @@ -0,0 +1,47 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Read-AzsContainerRegistry.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Read-AzsContainerRegistry' { + BeforeEach { + + function ValidateRegistry { + param( + [Parameter(Mandatory = $true)] + $Registry + ) + $registry | Should Not Be $null + $registry.CreationDate | Should Not Be $null + $registry.Id | Should Not Be $null + $registry.Location | Should Not Be $null + $registry.Name | Should Not Be $null + $registry.PropertiesName| Should Not Be $null + $registry.RegistryId | Should Not Be $null + $registry.RegistrySizeInByte | Should Not Be $null + $registry.ResourceGroup | Should Not Be $null + $registry.SubscriptionId| Should Not Be $null + $registry.Type | Should Not Be $null + } + } + + AfterEach { + $global:Client = $null + } + + It "TestGetContainerRegistryRegistry" -Skip:$('TestReadContainerRegistry' -in $global:SkippedTests) { + $global:TestName = 'TestReadContainerRegistry' + + $result = Read-AzsContainerRegistry + $result | Should Not Be $null + ValidateRegistry -Registry $result + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json new file mode 100644 index 00000000..c701a210 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Recording.json @@ -0,0 +1,160 @@ +{ + "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "12" ], + "x-ms-client-request-id": [ "a0b398de-8097-437b-b459-f0c62ca10f5d" ], + "CommandName": [ "Get-AzsContainerRegistryConfiguration" ], + "FullCommandName": [ "Get-AzsContainerRegistryConfiguration_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "30c9906b-213b-4d91-be61-e4a6947ff267" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14798" ], + "x-ms-correlation-request-id": [ "44e7a83d-33b5-4394-8dfb-d2b348174606" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012109Z:44e7a83d-33b5-4394-8dfb-d2b348174606" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:08 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "290" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}]}", + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$DELETE+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "DELETE", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "13" ], + "x-ms-client-request-id": [ "e32de432-9ace-4775-8be4-b4b5a351e13e" ], + "CommandName": [ "Remove-AzsContainerRegistryConfiguration" ], + "FullCommandName": [ "Remove-AzsContainerRegistryConfiguration_Delete" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "1e25b505-291a-4bdf-aa43-a38c5028ce48" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-deletes": [ "14986" ], + "x-ms-correlation-request-id": [ "cfedd943-27cb-4dcc-9387-e6a1246cb7b1" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012110Z:cfedd943-27cb-4dcc-9387-e6a1246cb7b1" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:10 GMT" ] + }, + "ContentHeaders": { + "Expires": [ "-1" ], + "Content-Length": [ "0" ] + }, + "Content": null, + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview+3": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "14" ], + "x-ms-client-request-id": [ "f98d0baa-2f56-40bc-95fd-70573736ed0c" ], + "CommandName": [ "Get-AzsContainerRegistryConfiguration" ], + "FullCommandName": [ "Get-AzsContainerRegistryConfiguration_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "fe616b1d-4f76-4a05-935e-3044c64d26f2" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14795" ], + "x-ms-correlation-request-id": [ "4d70b824-6f2e-4299-977a-6c36a2e4e199" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012112Z:4d70b824-6f2e-4299-977a-6c36a2e4e199" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:12 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "290" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}]}", + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryConfiguration+[NoContext]+TestRemoveContainerRegistryConfiguration+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview+4": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"maximumCapacityInGiB\": 0\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "59" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "dfb78b85-acda-4de6-8a1d-986b9c8fe84b" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1174" ], + "x-ms-correlation-request-id": [ "318d48e5-4f30-4876-abf3-f188c1c2bf2f" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012113Z:318d48e5-4f30-4876-abf3-f188c1c2bf2f" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:13 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "278" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 new file mode 100644 index 00000000..2ea2616d --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryConfiguration.Tests.ps1 @@ -0,0 +1,26 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzsContainerRegistryConfiguration.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Remove-AzsContainerRegistryConfiguration' { + It "TestRemoveContainerRegistryConfiguration" -Skip:$('TestRemoveContainerRegistryConfiguration' -in $global:SkippedTests) { + $global:TestName = 'TestRemoveContainerRegistryConfiguration' + + $maxCapacityInGib = (Get-AzsContainerRegistryConfiguration ).MaximumCapacityInGib + $targetCapacityInGib = 0 + Remove-AzsContainerRegistryConfiguration -ConfigurationName default + $result = Get-AzsContainerRegistryConfiguration + $result | Should Not Be $null + $result.MaximumCapacityInGib | Should Be $targetCapacityInGib + Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $maxCapacityInGib -ConfigurationName default + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Recording.json new file mode 100644 index 00000000..b21a6d85 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Recording.json @@ -0,0 +1,195 @@ +{ + "Remove-AzsContainerRegistryQuota+[NoContext]+TestDeleteContainerRegistryQuota+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"numberOfRegistries\": 100,\r\n \"capacityPerRegistryInGiB\": 50\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "96" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "4bdae01d-13b6-4479-ad75-ec891ada41da" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1173" ], + "x-ms-correlation-request-id": [ "3faf5e76-1b47-4f23-81c9-aa9f6f99c1f9" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012116Z:3faf5e76-1b47-4f23-81c9-aa9f6f99c1f9" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:15 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "308" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota\",\"name\":\"redmond/TestDeleteQuota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":50,\"numberOfRegistries\":100}}", + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryQuota+[NoContext]+TestDeleteContainerRegistryQuota+$DELETE+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "DELETE", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "17" ], + "x-ms-client-request-id": [ "ef992567-a74e-4257-8605-efdaee539b36" ], + "CommandName": [ "Remove-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Remove-AzsContainerRegistryQuota_Delete" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "b91d4be7-c304-4f0a-81d6-5d6ba8fe69c8" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-deletes": [ "14985" ], + "x-ms-correlation-request-id": [ "503b0d92-f5c6-4878-bec5-a611cec66fca" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012117Z:503b0d92-f5c6-4878-bec5-a611cec66fca" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:16 GMT" ] + }, + "ContentHeaders": { + "Expires": [ "-1" ], + "Content-Length": [ "0" ] + }, + "Content": null, + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryQuota+[NoContext]+TestDeleteContainerRegistryQuota+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview+3": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"numberOfRegistries\": 100,\r\n \"capacityPerRegistryInGiB\": 50\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "96" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "a9a6e22c-7faa-47e5-ae2d-78c903c7772e" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1172" ], + "x-ms-correlation-request-id": [ "b5879ff5-2501-48cd-aaf5-90c9cf32b67f" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012119Z:b5879ff5-2501-48cd-aaf5-90c9cf32b67f" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:19 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "308" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota\",\"name\":\"redmond/TestDeleteQuota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":50,\"numberOfRegistries\":100}}", + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryQuota+[NoContext]+TestDeleteContainerRegistryQuota+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview+4": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "19" ], + "x-ms-client-request-id": [ "9f59ffca-5dbb-49a3-9ba2-32a4b7bcda41" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_Get" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "05b78f6b-d812-4cb9-916f-1fc64be90ea8" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14789" ], + "x-ms-correlation-request-id": [ "195efecd-b523-4162-8952-10862ed2800e" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012120Z:195efecd-b523-4162-8952-10862ed2800e" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:20 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "308" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota\",\"name\":\"redmond/TestDeleteQuota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":50,\"numberOfRegistries\":100}}", + "isContentBase64": false + } + }, + "Remove-AzsContainerRegistryQuota+[NoContext]+TestDeleteContainerRegistryQuota+$DELETE+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview+5": { + "Request": { + "Method": "DELETE", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/TestDeleteQuota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "20" ], + "x-ms-client-request-id": [ "20321b4c-8672-4e7f-bf76-c5bea1a92929" ], + "CommandName": [ "Remove-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Remove-AzsContainerRegistryQuota_DeleteViaIdentity" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "64d6387e-13e0-472e-823b-6fa2ba9b4b02" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-deletes": [ "14984" ], + "x-ms-correlation-request-id": [ "e0f30a78-db60-48ca-8122-22bc93851e47" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012121Z:e0f30a78-db60-48ca-8122-22bc93851e47" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:20 GMT" ] + }, + "ContentHeaders": { + "Expires": [ "-1" ], + "Content-Length": [ "0" ] + }, + "Content": null, + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Tests.ps1 new file mode 100644 index 00000000..2d24276f --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Remove-AzsContainerRegistryQuota.Tests.ps1 @@ -0,0 +1,28 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzsContainerRegistryQuota.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Remove-AzsContainerRegistryQuota' { + It "TestDeleteContainerRegistryQuota" -Skip:$('TestDeleteContainerRegistryQuota' -in $global:SkippedTests) { + $global:TestName = 'TestDeleteContainerRegistryQuota' + + $name = "TestDeleteQuota" + $quota = New-AzsContainerRegistryQuota -CapacityPerRegistryInGib 50 -NumberOfRegistry 100 -Name $name + $quota | Should Not Be $null + $quota.CapacityPerRegistryInGib | Should Be 50 + $quota.NumberOfRegistry | Should Be 100 + Remove-AzsContainerRegistryQuota -Name $name + $quota | New-AzsContainerRegistryQuota -Name $name + $retrievedQuota = Get-AzsContainerRegistryQuota -Name $name + Remove-AzsContainerRegistryQuota -InputObject $retrievedQuota + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Recording.json new file mode 100644 index 00000000..1b7edb19 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Recording.json @@ -0,0 +1,115 @@ +{ + "Set-AzsContainerRegistryConfiguration+[NoContext]+TestUpdateContainerRegistryConfiguration+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "21" ], + "x-ms-client-request-id": [ "c92a7e8a-f3d3-47b4-8df4-f9cc78bc3ab0" ], + "CommandName": [ "Get-AzsContainerRegistryConfiguration" ], + "FullCommandName": [ "Get-AzsContainerRegistryConfiguration_List" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "3958edae-46c8-4568-91e8-e0d1feb1247f" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14787" ], + "x-ms-correlation-request-id": [ "a1cd0344-567d-4ab9-adb7-4d2410653047" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012122Z:a1cd0344-567d-4ab9-adb7-4d2410653047" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:22 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "290" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"value\":[{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}]}", + "isContentBase64": false + } + }, + "Set-AzsContainerRegistryConfiguration+[NoContext]+TestUpdateContainerRegistryConfiguration+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"maximumCapacityInGiB\": 1\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "59" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "3449d144-593d-4851-95cf-c4eb74fb2ba6" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1171" ], + "x-ms-correlation-request-id": [ "b604bea4-0686-40e6-adf0-654dba3fe71d" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012124Z:b604bea4-0686-40e6-adf0-654dba3fe71d" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:23 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "278" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":1}}", + "isContentBase64": false + } + }, + "Set-AzsContainerRegistryConfiguration+[NoContext]+TestUpdateContainerRegistryConfiguration+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview+3": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/default?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"maximumCapacityInGiB\": 0\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "59" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "ca4651f4-7b5b-437a-aa21-9778f0b1fb6d" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1170" ], + "x-ms-correlation-request-id": [ "7e47c741-7778-4a47-9fc0-ae3bba363d90" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012125Z:7e47c741-7778-4a47-9fc0-ae3bba363d90" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:25 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "278" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/configurations/Default\",\"name\":\"redmond/Default\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/configurations\",\"properties\":{\"maximumCapacityInGiB\":0}}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 new file mode 100644 index 00000000..1baf125d --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryConfiguration.Tests.ps1 @@ -0,0 +1,25 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Set-AzsContainerRegistryConfiguration.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Set-AzsContainerRegistryConfiguration' { + It "TestUpdateContainerRegistryConfiguration" -Skip:$('TestUpdateContainerRegistryConfiguration' -in $global:SkippedTests) { + $global:TestName = 'TestUpdateContainerRegistryConfiguration' + + $maxCapacityInGib = (Get-AzsContainerRegistryConfiguration ).MaximumCapacityInGib + $targetCapacityInGib = $originalDays + 1 + $result = Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $targetCapacityInGib -ConfigurationName default + $result | Should Not Be $null + $result.MaximumCapacityInGib | Should Be $targetCapacityInGib + Set-AzsContainerRegistryConfiguration -MaximumCapacityInGib $maxCapacityInGib -ConfigurationName default + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Recording.json new file mode 100644 index 00000000..581ad380 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Recording.json @@ -0,0 +1,115 @@ +{ + "Set-AzsContainerRegistryQuota+[NoContext]+TestUpdateContainerRegistryQuota+$GET+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "GET", + "RequestUri": "https://adminmanagement.redmond.ext-n25r1308.masd.stbtest.microsoft.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default%20Quota?api-version=2019-11-01-preview", + "Content": null, + "isContentBase64": false, + "Headers": { + "x-ms-unique-id": [ "24" ], + "x-ms-client-request-id": [ "127fccf6-6c66-4b94-b05f-c2833a06f286" ], + "CommandName": [ "Get-AzsContainerRegistryQuota" ], + "FullCommandName": [ "Get-AzsContainerRegistryQuota_Get" ], + "ParameterSetName": [ "__AllParameterSets" ], + "User-Agent": [ "AzurePowershell/Az4.0.0-preview" ], + "Authorization": [ "[Filtered]" ] + }, + "ContentHeaders": { + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "c19e1b9f-1909-4bab-94e9-642e60488723" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-reads": [ "14783" ], + "x-ms-correlation-request-id": [ "7104dbfa-df04-42d9-b768-590cfcf49396" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012127Z:7104dbfa-df04-42d9-b768-590cfcf49396" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:27 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "304" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}", + "isContentBase64": false + } + }, + "Set-AzsContainerRegistryQuota+[NoContext]+TestUpdateContainerRegistryQuota+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota?api-version=2019-11-01-preview+2": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default%20Quota?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"numberOfRegistries\": 10,\r\n \"capacityPerRegistryInGiB\": 100\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "96" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "5dbdeea1-5a04-4c2a-a317-56e12422f5be" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1169" ], + "x-ms-correlation-request-id": [ "1bdfec02-76b5-42ee-81df-81532901a9d8" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012129Z:1bdfec02-76b5-42ee-81df-81532901a9d8" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:28 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "304" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}", + "isContentBase64": false + } + }, + "Set-AzsContainerRegistryQuota+[NoContext]+TestUpdateContainerRegistryQuota+$PUT+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota?api-version=2019-11-01-preview+3": { + "Request": { + "Method": "PUT", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default%20Quota?api-version=2019-11-01-preview", + "Content": "{\r\n \"properties\": {\r\n \"numberOfRegistries\": 10,\r\n \"capacityPerRegistryInGiB\": 100\r\n }\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "96" ] + } + }, + "Response": { + "StatusCode": 200, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "ab1c9552-0591-40b0-9572-d8e7ae16f934" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1168" ], + "x-ms-correlation-request-id": [ "c89b1d6e-e302-41b1-a1c4-73db517dd11d" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012130Z:c89b1d6e-e302-41b1-a1c4-73db517dd11d" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:30 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "304" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"id\":\"/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Admin/locations/redmond/quotas/Default Quota\",\"name\":\"redmond/Default Quota\",\"type\":\"Microsoft.ContainerRegistry.Admin/locations/quotas\",\"properties\":{\"capacityPerRegistryInGiB\":100,\"numberOfRegistries\":10}}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Tests.ps1 new file mode 100644 index 00000000..b37583e4 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Set-AzsContainerRegistryQuota.Tests.ps1 @@ -0,0 +1,83 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Set-AzsContainerRegistryQuota.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Set-AzsContainerRegistryQuota' { + BeforeEach { + + function ValidateContainerRegistryQuota { + param( + [Parameter(Mandatory = $true)] + $containerRegistryQuota + ) + # Resource + $containerRegistryQuota | Should Not Be $null + + # Validate ContainerRegistry quota properties + $containerRegistryQuota.CapacityPerRegistryInGib | Should Not Be $null + $containerRegistryQuota.NumberOfRegistry | Should Not Be $null + $containerRegistryQuota.Type | Should Not Be $null + $containerRegistryQuota.Id | Should Not Be $null + $containerRegistryQuota.Name | Should Not Be $null + } + + function AssertAreEqual { + param( + [Parameter(Mandatory = $true)] + $expected, + [Parameter(Mandatory = $true)] + $found + ) + # Resource + if ($null -eq $expected) { + $found | Should Be $null + } + else { + $found | Should Not Be $null + # Validate ContainerRegistry quota properties + $expected.CapacityPerRegistryInGib | Should Be $found.CapacityPerRegistryInGib + $expected.NumberOfRegistry | Should Be $found.NumberOfRegistry + } + } + } + + AfterEach { + $global:Client = $null + } + + It "TestUpdateContainerRegistryQuota" -Skip:$('TestUpdateContainerRegistryQuota' -in $global:SkippedTests) { + $global:TestName = 'TestUpdateContainerRegistryQuota' + + $name = "Default Quota" + + $quota = Get-AzsContainerRegistryQuota -Name 'Default Quota' + + $quota | Should Not Be $null + + $CapInGiB = 100 + $NumOfRegistry = 10 + + $updated = Set-AzsContainerRegistryQuota ` + -CapacityPerRegistryInGib $CapInGiB ` + -NumberOfRegistry $NumOfRegistry ` + -Name $name + + ValidateContainerRegistryQuota -containerRegistryQuota $updated + $updated.CapacityPerRegistryInGib | Should Be $CapInGiB + $updated.NumberOfRegistry | Should Be $NumOfRegistry + + Set-AzsContainerRegistryQuota ` + -CapacityPerRegistryInGib $quota.CapacityPerRegistryInGib ` + -NumberOfRegistry $quota.NumberOfRegistry ` + -Name $name + } +} diff --git a/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Recording.json b/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Recording.json new file mode 100644 index 00000000..9c5ea841 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Recording.json @@ -0,0 +1,38 @@ +{ + "Start-AzsContainerRegistrySetup+[NoContext]+[NoScenario]+$POST+https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup?api-version=2019-11-01-preview+1": { + "Request": { + "Method": "POST", + "RequestUri": "https://management.azure.com/subscriptions/80cc99fb-a34a-449e-a880-24f85d73cb04/providers/Microsoft.ContainerRegistry.Setup/locations/redmond/setup?api-version=2019-11-01-preview", + "Content": "{\r\n \"password\": \"password\",\r\n \"sslCertBase64\": \"MIIi7QIBAzCCIqkGCSqGSIb3DQEHAaCCIpoEgiKWMIIikjCCCqsGCSqGSIb3DQEHAaCCCpwEggqYMIIKlDCCCpAGCyqGSIb3DQEMCgECoIIJfjCCCXowHAYKKoZIhvcNAQwBAzAOBAgwstbOn6kbugICB9AEgglYGGyY053wrSX36LhLdtyEGgAwLj3ZLKoo5BwLqKjYax3XLJ6SK8KSOlcunEKiyPsTGYlQVbzxoEn4pldDcNuDIiUverLwrFeBLjR6Ds/faVYJP87cXOhc1x8mbXDMyHQXh/yIavp5qNYpVIl/wBA1HQxGrSBXSBsmXKw4fkppMlAeBoqST0VGMB/lnzRDwJ/tZ2oZ45X/5WniuaVW0bdP+6SfcNFxmfKe0FZRLdlNvhr4tzFj6V4xz0C/TtuzVU0p8LG+MD2Qx9izZiunGuRScuh8Sp467dFea5pK6cV/gltG8kWCrUQ/XIBY2Cp26JPNP01wUBrvCaeT/0Y40n+FEbfHhfPVEh1asWp8mxHp445d5sXKLBPhWmI6+iFA76Q6yyWTNvntSn1ImB1iF92n5c8Q2d0IRQeDFBr8ISg6xu79fqzZtcvEKUtmZJQk8xZXwwZAVJw8/z3g2+sfC5epiLNdHB1HrZdQ2IZVZIbdqB5/Uhz/zVYsf9L882YFcZ3LYBzih5xIWV50Puy5Hg5H0f5PClVPQPnQcTLdGmvQMV+q5nS8zvgDxGGDG79nptPZKixaHHwV8lKCwXO8FprMrzUDtKRIWbwPNaJjBZnyYcHj/R5KTzeSGK4+GWBEJgYMkX0t7WRMXAj7/wJjo9XO93i7wq0oCzGaOLW+fXCPzG8MHYKmwQyyMGajJIlPlWLLxh55AKPJoa6evod0Nzv7mv65gzWvOIjhlWfRxKgaKmcTxfdbiTi4O1tDw7+4YSLzQS0HXUXSeRMM62RM0MgiyQRTx5bzDR9yhYWX0K/3jGsAI4+L6sgdeKJiB7j0xNczOjpCT0dhQk5LUiFxDP24rWec24Djn8CBvUIPcS27doGuHV30HaeHhOWvKJWiiR1ZfKkimhJArDbasmpGUNldovbfxPXruqzM/qovSbnqKjTmTtgt5K6p0vsmb3/qK1HTSHUMYMDFMqBFgEgz+eiEn8j/AP8DkI5TWoKGIYAkvB2u2J6zikjogsDpBJUMnRX4CUsHRiQzANs/8sqNTaoxiYY6aYFcxPZnuyouPPoGnvFIydHMSak7usKkVG7o8+CHFg67PYo9Mwto/xEJ4Ub6JqAQg5t4LvLZyrEk4nz4JVZvlzlQghjFGgRSffLkyTRkBnBHB3Yy670TOEtj5ntW0KLyOAgWQUz8Xj3PZEoEedGcsL+fZvXvpec1qlIqqCeH61jVdDyy8xMA7ej8dnEdb0ITSnXuK6s9t17E/aGHX25E9Yd1EnjVJdI407pxXJhzxgW+/BARgXRWAWLugF8g+A/vwy4yAHWhTNS4pd2adhWbN+w7o3WDVkXxaN8Y4wo31ZcWCAcc7O53wKzykGtSILDP6N4K8bO12+K/jkyRKp3R+s2KkjoawS32uBhEZmGoeb1CdrO1yJcbw/y6LYIST9vc4dy510tVUz35jqKxgPwpwycoUCJ98Ms35eDgk2cV3xmf9rxPyrwyLDjMH4loJgwwm2/4rwK1eiyDIKWOBecHMbFVT8naBhPx6udcIfZ5yEBx41ylHPqy/SmyUuxApo3qYz6TzM+fmM9iwVZ1WNWhlFZwSpAARQShZW4L6cDgKg4Dkf5pfxfs+RzsWhxfYZK5BibGhnp5r+I99UPTayK/O9FguxcDOh2hdBrFjx4IZtm+zihwI4YT4Jffo/FeFwq+ZINJzM80KcTbBMv425y7SkhIaLZOwSO/BXrGbKX2qKkJuxRxY8u+OcxOFi0zbHBj7ZGEdRTDTpkz0EQLlfNszF/8jMY312MWpjqzroYVSJSa1W5Jjcib/N2PhsfbNfofoUu6iRhtj0nhP9BDhOaDITlXmd7SIsdCcvzPhbHJDYQwGS12XjwT8B7HNwMSFRyv8Daad00yLaMG6o4LDjtzp4gggnAi19PU7UalLCcxujCrRBuJZoXqF+g/2KJThnOnw8BlDZl7ZwfFos8cgZti+FuoW6tpSv/UTSBQFl5EZzbAZesBk2Wi26pCkA87pAgtyhM82YfcuQDgIhj1gkYi7Gb0NN++eq6zP1x2MapJFwn6x8C37A9jwH7IAQPPfbAx9XN74peLT++pI25HdeVW36NuplsPlmcaw7OG+KTnT+x3cB+nZHN+KT0qdKbxZBKyVCNyahtn1QZTaDNsyzqGnDyuTtALm+F+HuSpPt5qthBCUwf5q7D1iLi3l0+eEH+lRlxXYmTB0aeszf2nItwlE/7/7DdBpMjYmJGNqtmBWRMm/l8tSyMrrKBe01IdhPHxvnoPZUX2p1Sf3+uPcrV3JkD9Wg136yeKsQeu23xpPQOhHboXJadlMQQmn14Z6U6LUAq9pSGmkzYBe4jG7yXlROr7bwkPZWN8xH1yT2PGhbZE1LW04D56KfosyzZ5SK5mq9afDK5DDGnIaVf7iFNRcaTZZGCgEl+/+Jmhyq8BaRVLldJJCh18Uc/TiPprstBp47LTo9IguHo+8g2+5f7wV8qG8tSpF4CVx0sIyDrngVDu2zT75tXAH8qMmOZYwQktVzbHVEdcVMASWxCE3MNvKrTSCYN1keHXFGdxQV/ftzbUwJFQKOZDQKuk8dDtc6EiCNZzFMxbx0wyZDvVEdbQ2hyDlWkkvDGBxj2pDPfdgbfk7t+zIjfX7DDGdU+sxSXvgnIJ4mAD940+ckgsJBGuhGLhh3EZL+LzHXSNwWtzl65+DYQ8zb0ndyxHtAA3oJ5Q42frposaL5ELMge6ZqiittAKPRxNuvZS+FvS/a8C+fo7asMk/RMFccftHTUibsB3RiY3HlWlu9We5/2DeFc4Chq6eRBBhKOBsA5fHscwqK01WHo/iItnajtoNW8qjyesMZ4usX4zFLxXimFgJzueJgFlFH1wPX5fjsqL+/LVBkL73kAAWbAv5HeDQ1UMT2l+nXINBEC/+EPODKAFLSVk6GRjHdaJQP/D4dhIrYjnKEuYA7D+I32DXEC7VEz0jMx5R4IBTfMVAbTJuyK0QI+eeaz/Q+hMl6ub7tIqmr04V5swnjxzNzKXRZn9QIpjIOCBX8RPIPOCJ5V1U40VHmEuYHTYfG89/5tnEK+RevLgge3Db82JcP8TFqDeYWInzF3+idmz25cEPmskTiynB8qgrKsMiCQMzwiy+fzf7gJ++45qqzVdWR3wO4X0KmjIxyyUNFqcpEuMCqMLK9O84Y7N8KMvuZcRQTGB/jANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBdBgkqhkiG9w0BCRQxUB5OAHQAZQAtADMAZQBkAGEAYwAxADYAMAAtADcAMwA4ADIALQA0ADgAZAAxAC0AOQBiAGIAYwAtADMAOABmADMAMgBkADcAOAA2AGYAMQBiMHkGCSsGAQQBgjcRATFsHmoATQBpAGMAcgBvAHMAbwBmAHQAIABFAG4AaABhAG4AYwBlAGQAIABSAFMAQQAgAGEAbgBkACAAQQBFAFMAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByMIIX3wYJKoZIhvcNAQcGoIIX0DCCF8wCAQAwghfFBgkqhkiG9w0BBwEwHAYKKoZIhvcNAQwBAzAOBAhBvXNk8TqjHwICB9CAgheYellkyhYEiV+DbehI2pgVsUVpJ3iLUhJIA0bCK08aLAhOs8++NI9pe4+lo/OjFC95xWiJZHI8ATww6clO+9NfXa9Vsdy1YW1SBSPZLoIa57zPr0OQMmqvDySZMOQ1QEDeqvT9XfnyzKmgHD5VbJ8CWCWEwbgS4S6OPHwtFesfvzA79mBrYxL6D2COPYDYB+SZundi74V0pXoUV3guojP9uPuk7HcyDgYMS+e9Ndd0XnLy+ghNbIzIZs5TEbcDY4HDUJaVLVu1wblpbG9/EJ7f41m8SdvsYexSPQy3ZoPxzQSzI4KuAEgFpYfuA0zW5LPfuMY1pH1JZcDvfWuXLm2zZbiWiqiYdvWSuNwX2S0xqC+FmRq+Tojl5KsLVGkPHG18o31rEfBdKLO7B2m2u6hxnzQmg/RVvOTpQ6pJMT0V+SXXxtyB8RlvBUstOOPeaxRzd3YtD0oEGT29JJzzVNjfAg1PrPU8anUHOIrzX91Zeww20RSlBn/IBwvB1lyl6pHyE5Os+ifVPxemZ7380oQ4M38CuV0rbCvKwP7VjsH9XH2kECrSn56fvCK/D9tjrpP+qHZTN5bpVV9OvPDIn2NbVD/zDr/8QoDBFfAJY+uvzO5PNajGwE4u4n1NYIcyhl50SN24lQqwOx99XimXO+hwNYyZOjArLbWXShixGGo6NHU/5uMVswxZb2zBifffTzqLk13Mx85xQvPlSBshGP/U/NIZ9eVsed5A0/OQVG6ZynolO5FWxmVWkEX4BaTR0O0k8bJuAZ8gK3djRwonjjJYh3ku6+1ko9V4c4AUypTKze6217uxpZXel8yr8PkfZ5fDA3tPs9AE6FKehcuA9XYWByQwYx1CNq39zHvbbyRr5kEBH1KMxFNRGu4JdE0w8HDnDYXM6XhlKzobuqXW+MLsBXDlFl3F0sctyeEfPOfzs9uCCBf5OxN7I2j8vRrptTvVoPYxzXHX4bcs7jkrSFqMdt1EkWv2ipiI1YkXsTNKoQ5B15cibxbAQuDVZy2ihM6Uz48KG0H4y5G1egOv+zG2x5gEvzIuwZdqDVDbxMLv1NzU9K3qNzAZt1Cj2g2kCLfxV4S8fYvM2JK2oedifF78i1rr2k5GX/FtFs64/dVe8nNgTK7xFSHWHSU2CA1FccaExxUqPOb4p8/W/wjSqnR3F+R9nmB47VIkdbUJUfzZknQIa40hbfrsrJPjyjU5NwMjkN0LuRLf2thHkVs6P61WCsPNRbHN1IP6fJ/wRYv5CkjQGwj0Vn6XTXGnfOdm+xr4QmxMugJEn4KcQZB/23p3EVRWmPFY6lf+O+E4KPEGN9lLKTlm/yMbd8V//ly/oxqFEn65lnNALoxOpjQ9cVecHnWOmAMn0r8hqLVeiQ7xM1rr090bEqm9iYb0ARUY/0la2XKCvB+o9Sg/rgbng90yrLIZL99EISeL+k1mQ2EU7SseOVLomPe44XmKnHfKQdnafwIYwbrQzU+59vVWzGKSzfBGfXj98oPYSN9K9J3VooE8ij9Mk4m1etEPZt1lpft2hjkVOcWDg2i+pKLZiJMdqEvAm/rcKHxwRa5FcyZV2Qo1yCctAgah7nqwLlEp5L8kTXxNvEF7lssR3epQ8aI8WVzUS61Fx4heWh0gT/kdljYyfpIzHUENg/I5oPuXAY0P4IsFaaH5m1hwZtOuOsHmxSkf/JZAdm4kMdR+msUNxX9CAhWhXVZV5py8fTdjqUcOYhb724RosJknwCNqTH2oVf/HWoiy3Xfe6xq8F6ZTd1ZOGdrhxRAFpKFRP3AHJ6MPtOqMqIXqrdYTDdW10idJQA3ohs3BLOWL+mjwMyRaqBxcBX6GutTCLNocbRNPd64VKsfvu5tggsfifMkLUx7vNGbS7NXsPqBW2ni7IItCgJrkYH95G+tdDBTU2AXlHbkgrVTP2OHoK0lNH9HjbqxCc4Xupi7VMjsY+V8t5SOuelMnRfSI1VUoMUFdYg/EJS0PVQnOV5mQeXQVyPO9A/luq2Vtor7Z3xyYWI/q8v/55pwI3s8J8UQbRIjMlklY8Ru5iJlHHKhAJbhZqp5NbnUu7mX6AyYVoshC8qHr/CF/eYaroqjKYLCxmCKwjYFitu3u9ta2XHPxdAXPCmWZpCNzuwRfuC6NEttNmCjIblGRUMkRUMtx3dBUTfDyske4rQiWQ5zL8kwM7O5lLIvjFPNrllScgsKHFULDjMQ52hP0psX/F8mE3cuuT9XbWa582ZDmmiMZe23J1Yi0PzgRitUIUUr0TofuCz+YdUtng0cZv9JuqDTx4SDAK5rjxeQMWMK6ccvSGo0K++qKmhDT7lXkkFyw2GHytMMYX2GKAe69S6VZWQ4+6RthhxugWAstVUQxmPodPbVVq1ttm2VNGPdcCW71Lt1XcXVm3U5Lfw2LRVBegdlzvvvf3769eU7URysnaqxgyMhqVI+g0eBNa0r+sHSAsAqihQD2FbPM1/4VnkKPmXJMGrJZqZyTTqtuO8vus+yONCO6lRsTgszL5d8YpVn6tbPZR8/lKaocp7FJi9HzDk6PLK8FMWPc86gRqdl4RwvcndRUwhUupUjTQgtNM2WVy20VT3wnTwaTCA5xdDqDehbZVgh3lwaAahzlsw33whu6ZeL/Tg6m0pMliekVytg4tsB8DS+LE5nrunPJiRbTDhdOwxICwtLkqxyNjIIMgHC+ZbA/k08O2fXY8RDtb0+DWn5ift3PPupHUL7PqQY3Tp5va1E2TQLPKtW+BBH6G3Ml1glPm/i2HjrvDfTPxRHhsK14cSmdRVJe+dZVqGSV7CC2CvitmchxVsrmzLDNTTmAmJUY7/EgiVxK/hIe0ym3zrPcRyTB8TIkm028YA0NrlvSPX3PVh6PibNvMhdRf6BDNrqPckloyCaEsxMfVk8sBzzR+aals4Dz6tt4/5ThQm/tfzUsYZPGEK6tGuVN1+cI/xFBNgEyexGgyz1MgI0HkDONtmqOsfuH71AZwBXciOOOVcRdHe0XqvPOcdBOaQ6KmMSktb7h4r/gwzo9KdGPQHM+TqpYyNIZQ4YncNNcjMbMZ2KVN6Z6S3erWEfRHJ3WCxECCvWGrswoLIRO4TWg8eieETL1YAeJT3HsoDD6pebg47BuVcb22X43HKXcPWxwfWt0RYzohiiYX4CnYDoIKcgWEcAgkahzrHU8PYRg1Xn/inAxe7sHmALXBTWsT2Nwg+Hx8fZSLFgQnofwFwJTIc3C+cs0h8hjlchGzI/ZdNFyei88KpcEobAkNnf+XjK5h9DQwPks9SWQWMHWlecK0pDY/7tyDpWrt6C9MMChUoIeFowM1vBIYRed1HmoiQvW+O0AqCVraYIr+uLe0sHwiNcszHk1T85Hc3pu03hDi310f7068dTg83bzLjM4U6GhH428i/3eybKHdETfl5HdDk2qjVp8XM4cF0R69GHa6qMb09haxXn9n+P7Gz4k5t7vnaQ3Iz9ZDxh+34NCtR5p44lLyVvJ9EiWfxDUlOiaII8E14b3udlEzxaV+R0GoyoqdmbrS8gpHMb2UPhHtQJM4P8EOBATX/g+zR/yWIgsFeti0/XNkavjahNzswzfwLxSVCNsjGtxZsUF5Ps3btY3emzTg1li677pIIn0uMzGpoWC1FFNwDO7y50YVdtIcfoBs9Jv4YDkZ1cGUisxrySrIvsC+nI1mVLhXxMpihwM0sgzXw3DPyd22kEmZ0yNAJemquEoo+OB+NvqGyof84fhS2RRbS7vPlvqDpPXsFSXFJ5NDoHfr+0hLWcPs+x2sXAbx6tGtzB3uuvhLtHSJTtM9D0IkvKRYyN9LmpDPyq4oo9Pmf2FYNaEuDphxQSH9LRLjL2U8EzA1ik3UJnIjE+w0GlKavYPSf/6uF/78yqYsE9kDAlkCYo2MA+OAY4OFA3Sj+zhxARsVne1rtjrCIYQ0i0ZT2VhHVCLZf+i/Lr4CMonJgMSfc54xjUPdtTtCPMgd7B4n12Go42XaEvwcxL/v5ncUVryCk7r+Lqgt1FP0axFYzuR5Py52h4G7bUPo8qFdP2tfmRHWgoHzf/y0bbdChKd8ls/WXclsEHR5YUVH1hv0PUnedXWn0QzG5/KbmVgOGMQj7vZwLsAfzfbfdB4ApDsj7Im9hPdwpdyQtv1OBlPR9I1iQMRSVMICLNGvt9F+NOk6H8v1fvdKZ3IpaM1VeIZoMDrCrx3UXqDtlzGMAObvXXNMxJmJj+F3q8Kgyu/pr4qnH688SukPE5W4zRkJVdFtZ6rUdD6cWaZi8jLRm/rjNcSliNQ2Ww4nkzao7Yozp+L6NcwrxsGQtBdZEqsrRe8i5quR5ax/XxW4nuI9Qh7VPiIPDana2XUU+OV4tZHFogRvXvJOVbtKIRzuahOfXqNSDYZiwE+paJplQlRNNFLuJCRGrrzOVETAwurZ6J8l6jhtwTrjj4T+gIQ5Gl2QdJN4D+jSf4bRA74Dt536aHWOpNih46NDxvimRdDRv+oN/IxOKjB3wX2wSIX+7Q3LYnXkto75vWgxhbtKBtiUWPOx0KrHSO7iUU3yOAUqjJjJYk6Rl4VcFsLmdTZw//z7QDSpsSP/mh3m9tqjfLQWDGbu28DVYVEBzCB9Q3ji7YP6QQVmxBQeHDioP7uYqesq7ViR+nTovW3cW+QeFaiENELNJB1ghJdIyteM7dIUT9u+AO6azbQ5cqFMOLU4I37P/Eb2LPtKijsBO7MidMXsXoEZvLSet+uiE1rywAYBduOjDvPa+AonbTvhiMaceldtJ0rTiu5lYsqWY/3oslQsF9KcKu0ezWfdoBryasjAcQCf93HVMID7W0umfwH40PlhoUSyA2LcPYoQnavffmUyrJbhgeEbxqrGzBbUQkSS60t5XlRx5zfTCYGRYk1ylv7ry22dbUoqVqaMaZWI3fR5DvYSSWgoNdcYBNe89Dd+INsGoSN4wBKV1ldJaqNMMX9CgKT+imxAZeLmWBf/WRQ+9whH6fZ+pd2p8BLapFgv8DJz2IjrfOUhJkZS031f1lK3ivNcJRoloxB/uGQoC+pABkRbNbMT+r/FlYVHOiRdSG+sW6vJaQEyHSIXjvFlAbNRx5MXsd5OwL255BInS3Xxtiy1uoCEmpjslH05vGio+9vYQ/bP37sgsz95x3W9vJHyE5/q8L0P44QmQiuSgATqysLESYgt8iUKIWH9IzgQdgTjMnRyef3T6xAz+h/qgl9mAT/mKon0B63IcI9sTrAnLJJhZYNHnnBeAqDUvojLRqlUCdpsQICi6fvJTDLP79y5n39QmEkIlgq0msf0jJvMyO3sNClVDgW4ByGGFUfBdep/cRQ4LRVJTN4y6sSOhCCIb3XN1Hn3ab8G7Qd7SdGk66zekgVt8ThkZMzsn5SiAU3M0o3dm5foFZva+FS7sgiFBC3fgY/vFnIFVtl9qRBFeRTMOyPLEQ1hivgkpl9HQLObPYY8I3ZDNcGQmoh+YfZV7pjJqLOvsWYvv5E/jykypeuUqPYOq9kZVVwnST9L+h/Nf/ij2iFfZoWvWsGO6kQmMRl+V23ICDi5U2waWGMZ/SeRAgSZ8m35TcvK+pzIuNSFh/FBZpzgXxmRSLWWBnnGMvOxVdS9LVloP5dC0W7W6MWZxAQM1nDRBT/1WVCvpaEA2Dj80dUseUCZx/YNNhv6NqXHKm44aSVBp2xR/93GuIWJyVu7JOFheiI0gt8jTFKnCYc4exD+w6GgxbxrRwXN/WJngxPMiWCLbAymgULhBYEAVp8gyyvENOBupHCN/2njAKKh9+XG5heivcI6jnylYIitxupiXfIuCn4rys+BXsIlGgwQ76Rnei+qoHg9WxBHo5FIsaAPzQRpTj8Ke44iGY0P3Kv69bJlooyJKHTV5CoyvdKTCFNW6ay+li6BKKAw2X1b0zJgxK+L30MeMo+DaBsew/aK7PzRxxMH0aDw8WDDkNeYi/rukxWkQggjvd/sp2UeB88y1FzaB/SIpQTqwdKzzSpbavu5qOsjwv01DMLkxU4IN9sGOJ7VNDR1dXmk7Mp728zTLcN3eyjgRkUG4+F6e11hsAf6Vm8aKpy3Rmex+bQg2pj3vSt/ZMsktOKcT6UrHufizm6pANXprQUPb/VM9qfsfjoSC3svk0yzm5cNjzfB5YON+DLT6vO3sKob5kO0ksSpRm63KLvpIYeK3/Lp0vCHYGthkm6OaWdlYtERkams8JNVDo+VNk3zFj0p82mBLMySPfWLCobTXCbQHPn+4Z378BFBCnWKaiPv4+ETUf6Qlk8rTDNRx4E13uCFQSsoiT+odcCtIlJ+tv4tcJ8+vCIP3g3x44RZjyvR2LOdEQt2yN+/2Z2VkJpdFxyH0fCn+tQutL6YIyomM95ZbUgxJASAnx/WW+zhWJGdzBGvboffk0zrpihfi2qVJ6GB0Z1f108DMf7ywvrF/fmSDIcBcbKHuXY/5eO55CUHY6J0Rmp6j9MLBLIdx7w+q7M114bjooOKPwMHFN8QXnnLHCDO8RL+aHUKw6npNB/fIsGm6QlIJ3iRE2PrR7W/OfNDcIXDo99bdpu9HY8Y9iYmAEMyaHKkg6kT3i01R9XnyO7NzcGBILqWZQ9u4JbxnX6htTV5dbuEy4YVuPO5BwVe8ozBSgXeI3cDO98L6sv+UhNATkLz00i+akYbX64oYgo9dxSwYkI2MfFuWKDbuS39T3TZfu8Er0EluGDo+vZXAh/cE3SiDFnCi778Ogt5NKCAaNRcO09FMetUuTX8+bKLsqyo+jTMdOuRxbdX+I1b79rs/xJq4g7dr6SYnVdjqrXbjW+JeDtKEAH63wQ7LmQYZb3R7YDArQkOu5SMfQkVtX6FV27eB1b/ELFarMtMwJlB6st2GQwrVDhtlI1ntP3nEZhG5gKVZdl3+Rg/LPjKuI2KwTBaH2tMsErJtFe/oMja6GJPcjRE7T8bdWampGp2HrefjS8pugpPgkIlk51/VD6710kgDL+2kC4QfxHBoz5Upy3yeYcFp5p47OedyUf4oI/K9lmkm/N3ix7cqYMNP5U5Cwb9TMrcjK+rNnebgTAAwD3rBgvxbwt5zftlKVNamoT4Riwxq3bmptCTNemNnrCJIvvJ281T8J1hrAr8c82Z6HED8D1mwZlZS68MeB0ACZ91QPKR7n4DlgUG2UTyWhhCHR6S2m6YfjBsm48XSExT58MJgNJyqjjRRF70CUf8xIWatEw254m3m8jFLaEpXx/WvFYSeWRZwZFfBuyMwYzN8eLroatpgJv6m8Udt1/Dqrsr0DmGTbxYoX6cgpO4BZrRNAmJ/0TnBJgSylu8/rNHWPT7YluHfhE2++mKGETTfiNGh7TikqLOaxQLVeCfoq3Dcy1STfeyadVBUNOUzfMt+KJkLgNE0/x8XcfSnu/2I5OMn/dm2/VsFzmpyg1xvMLENypIq97Vq/urkxoCzM6YZhBwjSWSQ2herkqpOJb3viLRv2w7X1bbKsNP6k48vUvy0gJ+s+pOPXdJDI0URLT8ja6bC/jdxJmCVG8agnB3gOqzOOC0cC6v2PXbflpeZpzrsmpltAfQxBdj+bXIngQJNnWjw1feC1dDo6urlYZL7bqiGXvYKLGeX8V95/Aj5Gi2u1Gtjl+BaeCtC6z8ls3YJSQ2LXlAAYQM9EH3NJ7uXje+YY2a56ri0rNte6LPcQwP4yr1hZh5zCpLaY32iCxFXIuR86xOSgM8eY4HyxDNc/S5Fy7zqqoMw4B+q9u8Y4yFz+CbLdK/7ypGNNXohpScw+s1+dTxVq4fXsrGM9QWt7E8D/9eKNLWXCbxTqSakMFrC55ni43dAFeAK8ODaFm+26R0AWYZq/6Q4IL3hJr2YsX9cBhu5Nh03WVuDY918/lJF+KMiJt6/MoePOoBdhYe2uU2XWkej7sVdE1XTaLo1luo/YqOVnklqVnRjRnYsKUd2vj9/0Fq4dL9Z2brZjdoFiQMU7UFXoZBtI4Kz8vtVj9BlDvSA+SGaiejQqwSqXFH5JxAG39i2hobhEfLytnrpXFgSbdoVWKPaolfBFlq63lHAniRxWRDJoRLmweRgRpSZSp+jA7MB8wBwYFKw4DAhoEFPvpsVjUCVEkF78GgHGhABt/VBgwBBSAYPDpklKtVpDSGYuuy/C9Mk//ZQICB9A=\"\r\n}", + "isContentBase64": false, + "Headers": { + }, + "ContentHeaders": { + "Content-Type": [ "application/json" ], + "Content-Length": [ "11982" ] + } + }, + "Response": { + "StatusCode": 409, + "Headers": { + "Cache-Control": [ "no-cache" ], + "Pragma": [ "no-cache" ], + "x-ms-request-id": [ "09939159-e6bb-4150-aaf0-38bbaeef12f1" ], + "Server": [ "Microsoft-HTTPAPI/2.0" ], + "x-ms-ratelimit-remaining-subscription-writes": [ "1197" ], + "x-ms-correlation-request-id": [ "2a0425fd-b448-464f-a3e3-31f0a889cf83" ], + "x-ms-routing-request-id": [ "REDMOND:20210805T012133Z:2a0425fd-b448-464f-a3e3-31f0a889cf83" ], + "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "X-Content-Type-Options": [ "nosniff" ], + "Date": [ "Thu, 05 Aug 2021 01:21:32 GMT" ] + }, + "ContentHeaders": { + "Content-Length": [ "160" ], + "Content-Type": [ "application/json; charset=utf-8" ], + "Expires": [ "-1" ] + }, + "Content": "{\"error\":{\"code\":\"AcrDeploymentStillRunning\",\"message\":\"Container registry deployment is still running. It is not allowed to repeat deployment at this stage.\"}}", + "isContentBase64": false + } + } +} \ No newline at end of file diff --git a/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 b/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 new file mode 100644 index 00000000..ffd5cc96 --- /dev/null +++ b/src/Azs.ContainerRegistry.Admin/test/Start-AzsContainerRegistrySetup.Tests.ps1 @@ -0,0 +1,19 @@ +$loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' +if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' +} +. ($loadEnvPath) +$TestRecordingFile = Join-Path $PSScriptRoot 'Start-AzsContainerRegistrySetup.Recording.json' +$currentPath = $PSScriptRoot +while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent +} +. ($mockingPath | Select-Object -First 1).FullName + +Describe 'Start-AzsContainerRegistrySetup' { + $password = ConvertTo-SecureString "password" -AsPlainText -Force + $pfx_cert_path = "C:\CloudDeployment\Setup\Certificates\ADFS\Container Registry\SSL.pfx" + + { Start-AzsContainerRegistrySetup -Password $password -SslCertInputFile $pfx_cert_path } | Should Not Throw +}