Example #1
0
        public void GetResourceBodyCompletionSnippets_WithNoStaticTemplate_ShouldReturnSnippets()
        {
            SnippetsProvider snippetsProvider = new SnippetsProvider();
            TypeSymbol       typeSymbol       = new ResourceType(
                ResourceTypeReference.Parse("microsoft.aadiam/azureADMetrics@2020-07-01-preview"),
                ResourceScope.ResourceGroup,
                CreateObjectType("microsoft.aadiam/azureADMetrics@2020-07-01-preview",
                                 ("name", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("location", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("kind", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("id", LanguageConstants.String, TypePropertyFlags.ReadOnly),
                                 ("hostPoolType", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("sku", CreateObjectType("applicationGroup",
                                                          ("friendlyName", LanguageConstants.String, TypePropertyFlags.None),
                                                          ("properties", CreateObjectType("properties",
                                                                                          ("loadBalancerType", LanguageConstants.String, TypePropertyFlags.Required),
                                                                                          ("preferredAppGroupType", LanguageConstants.String, TypePropertyFlags.WriteOnly)),
                                                           TypePropertyFlags.Required),
                                                          ("name", LanguageConstants.String, TypePropertyFlags.Required)),
                                  TypePropertyFlags.Required)));

            IEnumerable <Snippet> snippets = snippetsProvider.GetResourceBodyCompletionSnippets(typeSymbol, false);

            snippets.Should().SatisfyRespectively(
                x =>
            {
                x.Prefix.Should().Be("{}");
                x.Detail.Should().Be("{}");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().Be("{\n\t$0\n}");
            },
                x =>
            {
                x.Prefix.Should().Be("required-properties");
                x.Detail.Should().Be("Required properties");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
	name: $1
	location: $2
	sku: {
		name: $3
		properties: {
			loadBalancerType: $4
		}
	}
	kind: $5
	hostPoolType: $6
	$0
}");
            });
        }
Example #2
0
        public void GetResourceBodyCompletionSnippets_WithStaticTemplateAndResourceDependencies_ShouldReturnSnippets()
        {
            SnippetsProvider snippetsProvider = new SnippetsProvider();
            TypeSymbol       typeSymbol       = new ResourceType(
                ResourceTypeReference.Parse("Microsoft.Automation/automationAccounts/modules@2015-10-31"),
                ResourceScope.ResourceGroup,
                CreateObjectType("Microsoft.Automation/automationAccounts/modules@2015-10-31",
                                 ("name", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("location", LanguageConstants.String, TypePropertyFlags.Required)));

            IEnumerable <Snippet> snippets = snippetsProvider.GetResourceBodyCompletionSnippets(typeSymbol, false);

            snippets.Should().SatisfyRespectively(
                x =>
            {
                x.Prefix.Should().Be("{}");
                x.Detail.Should().Be("{}");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().Be("{\n\t$0\n}");
            },
                x =>
            {
                x.Prefix.Should().Be("snippet");
                x.Detail.Should().Be("Automation Module");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
  parent: automationAccount
  name: ${3:'name'}
  properties: {
    contentLink: {
      uri: ${4:'https://content-url.nupkg'}
    }
  }
}
resource automationAccount 'Microsoft.Automation/automationAccounts@2015-10-31' = {
  name: ${1:'name'}
}
");
            },
                x =>
            {
                x.Prefix.Should().Be("required-properties");
                x.Detail.Should().Be("Required properties");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
	name: $1
	location: $2
	$0
}");
            });
        }
Example #3
0
        public void GetResourceBodyCompletionSnippets_WithStaticTemplateAndNoResourceDependencies_ShouldReturnSnippets()
        {
            SnippetsProvider snippetsProvider = new SnippetsProvider();
            TypeSymbol       typeSymbol       = new ResourceType(
                ResourceTypeReference.Parse("Microsoft.DataLakeStore/accounts@2016-11-01"),
                ResourceScope.ResourceGroup,
                CreateObjectType("Microsoft.DataLakeStore/accounts@2016-11-01",
                                 ("name", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("location", LanguageConstants.String, TypePropertyFlags.Required)));

            IEnumerable <Snippet> snippets = snippetsProvider.GetResourceBodyCompletionSnippets(typeSymbol, false);

            snippets.Should().SatisfyRespectively(
                x =>
            {
                x.Prefix.Should().Be("{}");
                x.Detail.Should().Be("{}");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().Be("{\n\t$0\n}");
            },
                x =>
            {
                x.Prefix.Should().Be("snippet");
                x.Detail.Should().Be("Data Lake Store Account");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
  name: ${2:'name'}
  location: resourceGroup().location
  properties: {
    newTier: ${3|'Consumption','Commitment_1TB','Commitment_10TB','Commitment_100TB','Commitment_500TB','Commitment_1PB','Commitment_5PB'|}
    encryptionState: ${4|'Enabled','Disabled'|}
  }
}
");
            },
                x =>
            {
                x.Prefix.Should().Be("required-properties");
                x.Detail.Should().Be("Required properties");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
	name: $1
	location: $2
	$0
}");
            });
        }
        public void GetResourceBodyCompletionSnippets_WithStaticTemplateAndNoResourceDependencies_ShouldReturnSnippets()
        {
            SnippetsProvider snippetsProvider = new SnippetsProvider();
            TypeSymbol       typeSymbol       = new ResourceType(
                ResourceTypeReference.Parse("Microsoft.Network/dnsZones@2018-05-01"),
                ResourceScope.ResourceGroup,
                CreateObjectType("Microsoft.Network/dnsZones@2018-05-01",
                                 ("name", LanguageConstants.String, TypePropertyFlags.Required),
                                 ("location", LanguageConstants.String, TypePropertyFlags.Required)));

            IEnumerable <Snippet> snippets = snippetsProvider.GetResourceBodyCompletionSnippets(typeSymbol, false);

            snippets.Should().SatisfyRespectively(
                x =>
            {
                x.Prefix.Should().Be("{}");
                x.Detail.Should().Be("{}");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().Be("{\n\t$0\n}");
            },
                x =>
            {
                x.Prefix.Should().Be("snippet");
                x.Detail.Should().Be("DNS Zone");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
  name: ${2:'name'}
  location: 'global'
}
");
            },
                x =>
            {
                x.Prefix.Should().Be("required-properties");
                x.Detail.Should().Be("Required properties");
                x.CompletionPriority.Should().Be(CompletionPriority.Medium);
                x.Text.Should().BeEquivalentToIgnoringNewlines(@"{
	name: $1
	location: $2
	$0
}");
            });
        }