github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/output-funcs-tfbridge20/dotnet-extras/Tests/CodegenTests.cs (about) 1 // Copyright 2016-2021, Pulumi Corporation 2 3 using System; 4 using System.Collections.Generic; 5 using System.Collections.Immutable; 6 using System.Linq; 7 using System.Text; 8 using System.Text.Json; 9 using System.Threading.Tasks; 10 11 using FluentAssertions; 12 using NUnit.Framework; 13 using Moq; 14 15 using Pulumi; 16 using Pulumi.Serialization; 17 using Pulumi.Testing; 18 19 using Pulumi.Mypkg.Outputs; 20 using static Pulumi.Mypkg.TestHelpers; 21 22 namespace Pulumi.Mypkg 23 { 24 [TestFixture] 25 public class UnitTests 26 { 27 28 [Test] 29 public async Task TestListStorageAccountsOutputWorks() 30 { 31 Func<StorageAccountKeyResponseResult, string> showSAKR = (r) => 32 $"CreationTime={r.CreationTime} KeyName={r.KeyName} Permissions={r.Permissions} Value={r.Value}"; 33 34 Func<string,Func<ListStorageAccountKeysInvokeArgs>,Task> check = ( 35 (expected, args) => Assert 36 .Output(() => ListStorageAccountKeys.Invoke(args()).Apply(x => { 37 return "[" + string.Join(", ", x.Keys.Select(k => showSAKR(k))) + "]"; 38 })).ResolvesTo(expected) 39 ); 40 41 await check("[CreationTime=my-creation-time KeyName=my-key-name Permissions=my-permissions" + 42 " Value=[accountName: my-an, expand: my-expand, resourceGroupName: my-rgn]]", 43 () => new ListStorageAccountKeysInvokeArgs() 44 { 45 AccountName = Out("my-an"), 46 ResourceGroupName = Out("my-rgn"), 47 Expand = Out("my-expand") 48 }); 49 } 50 51 [Test] 52 public async Task TestGetAmiIdsWorks() 53 { 54 Func<GetAmiIdsResult, string> showGetAmiIdsResult = (r) => 55 $"Id={r.Id} NameRegex={r.NameRegex} SortAscending={r.SortAscending}"; 56 57 Func<string,Func<GetAmiIdsInvokeArgs>,Task> check = (expected, args) => 58 Assert.Output(() => GetAmiIds.Invoke(args()).Apply(x => showGetAmiIdsResult(x))) 59 .ResolvesTo(expected); 60 61 var owners = new InputList<string>(); 62 owners.Add(Out("owner-1")); 63 owners.Add(Out("owner-2")); 64 65 Func<int, Inputs.GetAmiIdsFilterInputArgs> makeFilter = (int i) => 66 { 67 var values = new InputList<string>(); 68 values.Add($"value-{i}-1"); 69 values.Add($"value-{i}-2"); 70 var f = new Inputs.GetAmiIdsFilterInputArgs() { 71 Name = Out($"filter-{i}-name"), 72 Values = values 73 }; 74 return f; 75 }; 76 77 var filters = new InputList<Inputs.GetAmiIdsFilterInputArgs>(); 78 filters.Add(makeFilter(1)); 79 filters.Add(makeFilter(2)); 80 81 var expectOwners = "[owners: owner-1, owner-2]"; 82 var expectFilters = "[name=filter-1-name values=[value-1-1, value-1-2], name=filter-2-name values=[value-2-1, value-2-2]]"; 83 var expect = $"Id=my-id {expectOwners} [filters: {expectFilters}] NameRegex=[a-z] SortAscending=True"; 84 85 await check(expect, 86 () => new GetAmiIdsInvokeArgs() 87 { 88 NameRegex = Out("[a-z]"), 89 SortAscending = Out(true), 90 Owners = owners, 91 Filters = filters 92 }); 93 } 94 } 95 }