Test/Comprehensive.tests.ps1
$providerName = "NanoServerPackage" $commonPackages = @( "Microsoft-NanoServer-Defender-Package", #"Microsoft-NanoServer-ShieldedVM-Package", "Microsoft-NanoServer-Compute-Package", "Microsoft-NanoServer-SecureStartup-Package", "Microsoft-NanoServer-Storage-Package", "Microsoft-NanoServer-BootFromWim-Package", "Microsoft-NanoServer-NPDS-Package", "Microsoft-NanoServer-OEM-Drivers-Package", "Microsoft-NanoServer-DSC-Package", "Microsoft-NanoServer-DNS-Package", "Microsoft-NanoServer-IIS-Package", "Microsoft-NanoServer-DCB-Package", "Microsoft-NanoServer-FailoverCluster-Package", "Microsoft-NanoServer-Host-Package", "Microsoft-NanoServer-Guest-Package", "Microsoft-NanoServer-Containers-Package", "Microsoft-NanoServer-SCVMM-Package", "Microsoft-NanoServer-SCVMM-Compute-Package" ) $packagesForServerDataCenter = @( "Microsoft-NanoServer-ShieldedVM-Package") $allPackages = $commonPackages + $packagesForServerDataCenter $cultures = ("cs-cz", "de-de", "en-us", "es-es", "fr-fr", "hu-hu", "it-it", "ja-jp", "ko-kr", "nl-nl", "pl-pl", "pt-br", "pt-pt", "ru-ru", "sv-se", "tr-tr", "zh-cn", "zh-tw") $vhdPath = "C:\TP5Candidate\nano_datacenter_10_0_14300_1000.vhd" Describe "Find 18 packages" { It "Find all 18 packages" { foreach ($package in $allPackages) { foreach ($culture in $cultures) { $desiredPackage = Find-NanoServerPackage -Name $package -Culture $culture $desiredPackage.Name | should match $package $desiredPackage.Culture | should match $culture } } } } Describe "Save 18 packages" { $savePackagePath = "$env:TMP\NanoServerPackageTest" md $savePackagePath It "Save all 18 packages" { foreach ($package in $allPackages) { Write-Host "Saving package $package" foreach ($culture in $cultures) { $desiredPackage = Save-NanoServerPackage -Name $package -Culture $culture -Path $savePackagePath $desiredPackage.Name | should match $package $desiredPackage.Culture | should match $culture (Get-ChildItem $savePackagePath).Count | should be 2 Remove-Item "$savePackagePath\*.cab" } } } } Describe "Install 18 packages" { It "Install all common packages" { # Install all of them foreach ($package in $commonPackages) { Write-Host "Installing package $package" Install-NanoServerPackage -Name $package $installedPackage = Get-Package -ProviderName $providerName -Name $package $installedPackage.Name -match $package | should be $true } } It "Install server data center packages" { foreach ($package in $packagesForServerDataCenter) { Write-Host "Installing package $package" Install-NanoServerPackage -Name $package $installedPackage = Get-Package -ProviderName $providerName -Name $package $installedPackage.Name -match $package | should be $true } } It "Install all common packages to offline image" { # Install all of them foreach ($package in $commonPackages) { Write-Host "Installing package $package to vhd $vhdPath" Install-NanoServerPackage -Name $package -ToVhd $vhdPath $installedPackage = Get-Package -ProviderName $providerName -Name $package -FromVhd $vhdPath $installedPackage.Name -match $package | should be $true } } It "Install server data center packages to offline image" { # Install all of them foreach ($package in $packagesForServerDataCenter) { Write-Host "Installing package $package to vhd $vhdPath" Install-NanoServerPackage -Name $package -ToVhd $vhdPath $installedPackage = Get-Package -ProviderName $providerName -Name $package -FromVhd $vhdPath $installedPackage.Name -match $package | should be $true } } } |