Testcases voor createUiDefinition.json
In dit artikel worden de tests beschreven die worden uitgevoerd met de sjabloontest-toolkit voor createUiDefinition.json-bestanden . De voorbeelden omvatten de testnamen en codevoorbeelden die de tests wel of niet doorstaan .
De toolkit bevat testcases voor Azure Resource Manager-sjablonen (ARM-sjablonen) en de hoofdsjabloonbestanden met de naam azuredeploy.json of maintemplate.json. Wanneer de map een createUiDefinition.json-bestand bevat, worden specifieke tests uitgevoerd voor UI-besturingselementen. Zie Testparameters voor meer informatie over het uitvoeren van tests of het uitvoeren van een specifieke test.
Het bestand createUiDefinition.json maakt aangepaste besturingselementen voor de gebruikersinterface (UI) met behulp van elementen en functies.
Controleer of de sjabloonparameter waarden toestaat
Testnaam: toegestane waarden moeten daadwerkelijk worden toegestaan
Met deze test wordt gecontroleerd of waarden voor elk besturingselement in createUiDefinition.json zijn toegestaan in de parameters van de hoofdsjabloon. De parameters worden op naam toegewezen tussen de hoofdsjabloon en het bestand createUiDefinition.json .
De parameter van de hoofdsjabloon moet de waarden van de van het besturingselement allowedValues
accepteren. De test controleert ook of naar het besturingselement wordt verwezen in de sectie createUiDefinition.jsonoutputs
.
Met deze test worden de hoofdsjabloon en het bestand createUiDefinition.json gecontroleerd. Een voorbeeld van het bestand createUiDefinition.json wordt weergegeven na de belangrijkste sjabloonvoorbeelden.
Het volgende voorbeeld mislukt omdat de parameternaam combo
van de hoofdsjabloon niet overeenkomt met de parameternaam comboBox
van het besturingselement.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"combo": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
Het volgende voorbeeld mislukt omdat het parametertype int
van de hoofdsjabloon de waarde van string
het besturingselement niet accepteert. En als de parameter van een hoofdsjabloon een defaultValue
definieert, moet deze een geldig value
zijn in de van allowedValues
het besturingselement.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "int",
"defaultValue": 4
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
In het volgende voorbeeld wordt doorgegeven omdat de parameternaam van de hoofdsjabloon overeenkomt met de parameternaam van het besturingselement. En het parametertype van de sjabloon is een string
met een defaultValue
die is opgegeven in de van allowedValues
het besturingselement .
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('comboBox')]"
}
}
}
Het bestand createUiDefinition.json voor dit voorbeeld:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [],
"steps": [
{
"name": "demoComboBox",
"label": "demoComboBoxLabel",
"elements": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "Value two",
"toolTip": "This is a tool tip",
"constraints": {
"allowedValues": [
{
"label": "Value one",
"description": "The value to select for option 1.",
"value": "one"
},
{
"label": "Value two",
"description": "The value to select for option 2.",
"value": "two"
}
],
"required": true
},
"visible": true
}
]
}
],
"outputs": {
"comboBox": "[steps('demoComboBox').comboBox]"
}
}
}
Uitvoerbesturingselementen moeten bestaan
Testnaam: besturingselementen in uitvoer moeten bestaan
Besturingselementen die in de outputs
sectie worden gebruikt, moeten aanwezig zijn in een element elders in createUiDefinition.json. De naam waarnaar wordt verwezen in outputs
moet overeenkomen met een naam die wordt gebruikt in basics[]
of steps[]
.
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "nameDoesNotMatchOutput",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Eigenschappen moeten waarden bevatten
Testnaam: CreateUIDefinition mag geen lege waarden bevatten
Eigenschappen moeten waarden bevatten. Vereiste eigenschappen moeten geldige waarden gebruiken. Optionele eigenschappen die leeg zijn, moeten worden verwijderd. De test staat lege "basics": []
, "steps": []
of defaultValue
.
Het volgende voorbeeld mislukt omdat label
, placeholder
en toolTip
leeg zijn.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "",
"placeholder": "",
"defaultValue": "",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
In het volgende voorbeeld wordt doorgegeven omdat label
en toolTip
waarden hebben, en placeholder
is verwijderd.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Geldig schema en geldige versie gebruiken
Testnaam: CreateUIDefinition should have Schema
Het bestand createUiDefinition.json moet een $schema
eigenschap bevatten en een geldige $schema
en version
gebruiken. De versienummers in $schema
en version
moeten overeenkomen.
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.9.9-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.9.9-preview"
}
Het volgende voorbeeld wordt doorgegeven omdat de meest recente $schema
en version
worden gebruikt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Referentiebevestiging niet verbergen
Testnaam: referentiebevestiging mag niet worden verborgen
Deze test controleert of referenties zijn bevestigd voor Microsoft.Common.PasswordBox of Microsoft.Compute.CredentialsCombo. De hideConfirmation
eigenschap moet worden ingesteld op false
zodat de bevestiging zichtbaar is.
Het volgende voorbeeld mislukt omdat hideConfirmation
is true
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": true
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
In het volgende voorbeeld wordt doorgegeven omdat hideConfirmation
is false
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": false
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
De juiste handler gebruiken
Testnaam: Handler moet juist zijn
Gebruik Microsoft.Azure.CreateUIDef
of Microsoft.Compute.MultiVm
in het bestand createUiDefinition.json .
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.",
"version": "0.1.2-preview"
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Bestaande resources niet verbergen
Testnaam: HideExisting moet correct worden verwerkt
Als hideExisting
is ingesteld op false
of weggelaten, outputs
moet en newOrExisting
bevattenresourceGroup
. De standaardwaarde voor hideExisting
is false
.
Voorbeelden van besturingstypen die microsoft.storage.storageaccountselector, Microsoft.Network.PublicIpAddressCombo of Microsoft.Network.VirtualNetworkCombo bevattenhideExisting
.
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": false
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"resourceGroup": "[basics('storage').resourceGroup]",
"newOrExisting": "[basics('storage').newOrExisting]"
}
}
}
Locatie in uitvoer gebruiken
Testnaam: locatie moet in uitvoer zijn
De outputs
sectie moet een locatie bevatten met behulp van de locatiefunctie .
Het volgende voorbeeld mislukt omdat outputs
er geen locatie is.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Uitvoer van besturingselementen opnemen in sjabloonparameters
Testnaam: uitvoer moet aanwezig zijn in sjabloonparameters
De test controleert of createUiDefinition.json een outputs
sectie bevat. De test controleert ook of deze outputs
zijn gedefinieerd in de sectie van parameters
de hoofdsjabloon. De namen moeten overeenkomen omdat parameters zijn toegewezen op naam tussen de createUiDefinition.json en de hoofdsjabloon.
Met deze test worden de hoofdsjabloon en het bestand createUiDefinition.json gecontroleerd. Een voorbeeld van het bestand createUiDefinition.json wordt weergegeven na de belangrijkste sjabloonvoorbeelden.
Het volgende voorbeeld mislukt omdat de hoofdsjabloon de parameter uit de comboBox
sectie createUiDefinition.jsonoutputs
niet bevat.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat de hoofdsjabloon de comboBox
parameter bevat.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Het bestand createUiDefinition.json voor dit voorbeeld:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Parameters zonder standaard moeten aanwezig zijn in uitvoer
Testnaam: Parameters zonder standaard moeten bestaan in CreateUIDefinition
Parameters in de hoofdsjabloon zonder standaardwaarde moeten aanwezig zijn in de sectie createUiDefinition.jsonoutputs
.
Met deze test worden de hoofdsjabloon en het bestand createUiDefinition.json gecontroleerd. Een voorbeeld van het bestand azuredeploy.json wordt weergegeven na de voorbeelden van het besturingselement.
Het volgende voorbeeld mislukt omdat het bestand outputs
createUiDefinition.json de parameter comboBox
van de hoofdsjabloon niet bevat.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
In het volgende voorbeeld wordt doorgegeven omdat createUiDefinition.json de comboBox
in outputs
bevat.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Het bestand azuredeploy.json voor dit voorbeeld. De comboBox
parameter heeft geen standaardwaarde.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Het vak Veilige parameter met wachtwoord gebruiken
Testnaam: Wachtwoordtekstvakken moeten worden gebruikt voor wachtwoordparameters
Deze test controleert of een Microsoft.Common.PasswordBox-element is gedefinieerd in de hoofdsjabloon parameters
en de createUiDefinition.jsonoutputs
. Het parametertype van de hoofdsjabloon voor een wachtwoordvak moet of secureObject
zijnsecureString
.
Met deze test worden de hoofdsjabloon en het bestand createUiDefinition.json gecontroleerd. Een voorbeeld van het bestand createUiDefinition.json wordt weergegeven na de belangrijkste sjabloonvoorbeelden.
Het volgende voorbeeld mislukt omdat de parameter van passwordBox
de hoofdsjabloon een string
is.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
In het volgende voorbeeld wordt doorgegeven omdat de parameter van passwordBox
de hoofdsjabloon een secureString
is.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "secureString"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Het bestand createUiDefinition.json voor dit voorbeeld:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Wachtwoordvak vereist minimale lengte
Testnaam: PasswordBoxes moeten een minimale lengte hebben
De test controleert of het element Microsoft.Common.PasswordBox wordt gebruikt constraints
met een regex
die ten minste 12 tekens vereist.
Het volgende voorbeeld mislukt omdat er geen constraints
zijn.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat de regex
minimaal 12 tekens vereist.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password",
"constraints": {
"required": true,
"regex": "^[a-zA-Z0-9]{12,}$",
"validationMessage": "Password must be at least 12 characters long, contain only numbers and letters"
}
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Voor het tekstvak moet validatie worden gebruikt
Testnaam: Tekstvakken zijn goed gevormd
Gebruik validatie met tekstvakken om te controleren of constraints
deze een regex
en message
bevatten.
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
knopinfo moet bestaan met een waarde
Testnaam: knopinfo moet aanwezig zijn
Met deze test wordt gecontroleerd of de toolTip
eigenschap bestaat en een waarde bevat.
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
Geen standaardgebruikersnaam instellen
Testnaam: Gebruikersnamen mogen geen standaardwaarde hebben
Tijdens de test wordt gecontroleerd of er een defaultValue
set is voor Microsoft.Compute.UserNameTextBox.
Het volgende voorbeeld mislukt omdat er een defaultValue
is opgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"defaultValue": "admin",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
Bericht gebruiken met validaties
Testnaam: validaties moeten bericht bevatten
Met deze test wordt gecontroleerd of alle validations
in createUiDefinition.json een message
bevatten.
Het volgende voorbeeld mislukt omdat de regex
validatie geen heeft.message
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$"
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
De grootte van de virtuele machine moet overeenkomen
Testnaam: VM-grootten moeten overeenkomen met sjabloon
Met deze test wordt gecontroleerd of de Microsoft.Compute.SizeSelector zich in de sectie createUiDefinition.jsonoutputs
en de sectie van parameters
de hoofdsjabloon bevindt. Hoofdsjabloonparameters die een defaultValue
opgeven, moeten overeenkomen met een waarde in de van het besturingselement allowedSizes
.
Met deze test worden de hoofdsjabloon en het bestand createUiDefinition.json gecontroleerd. Een voorbeeld van het bestand createUiDefinition.json wordt weergegeven na de belangrijkste sjabloonvoorbeelden.
Het volgende voorbeeld mislukt omdat de hoofdsjabloon defaultValue
niet overeenkomt met een waarde in allowedSizes
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D9"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
In het volgende voorbeeld wordt doorgegeven omdat de hoofdsjabloon defaultValue
overeenkomt met een waarde in allowedSizes
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D3"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
Het bestand createUiDefinition.json voor dit voorbeeld:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "vmSize",
"type": "Microsoft.Compute.SizeSelector",
"label": "VM Size",
"toolTip": "Select a virtual machine size",
"recommendedSizes": [
"Standard_D1"
],
"constraints": {
"allowedSizes": [
"Standard_D1",
"Standard_D2",
"Standard_D3"
]
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"vmSize": "[basics('vmSize')]"
}
}
}
Volgende stappen
- Zie CreateUiDefinition.json voor het maken van een Azure Portal gebruikersinterface.
- Zie De interface van uw portal testen voor Azure Managed Applications als u de sandbox voor de definitie van de gebruikersinterface maken wilt gebruiken.
- Zie CreateUiDefinition elements and CreateUiDefinition functions (CreateUiDefinition-functies ) voor meer informatie over ui-besturingselementen.
- Zie Testcases voor ARM-sjablonen voor meer informatie over ARM-sjabloontests.