github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/output-funcs-tfbridge20/dotnet-extras/Tests/Mocks.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.Threading.Tasks; 8 9 using Pulumi.Testing; 10 11 namespace Pulumi.Mypkg 12 { 13 public class Mocks : IMocks 14 { 15 public Task<object> CallAsync(MockCallArgs args) 16 { 17 18 if (args.Token == "mypkg::listStorageAccountKeys") 19 { 20 var argsString = string.Join(", ", args.Args.Keys.OrderBy(k => k).Select(k => $"{k}: {args.Args[k]}")); 21 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 22 var arrayBuilder = ImmutableArray.CreateBuilder<object>(); 23 var elemBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 24 elemBuilder.Add("creationTime", "my-creation-time"); 25 elemBuilder.Add("keyName", "my-key-name"); 26 elemBuilder.Add("permissions", "my-permissions"); 27 elemBuilder.Add("value", "[" + argsString + "]"); 28 arrayBuilder.Add(elemBuilder.ToImmutableDictionary()); 29 dictBuilder.Add("keys", arrayBuilder.ToImmutableArray()); 30 var result = dictBuilder.ToImmutableDictionary(); 31 return Task.FromResult((Object)result); 32 } 33 34 if (args.Token == "mypkg::getAmiIds") 35 { 36 // NOTE: only subset of possible fields are tested here in the smoke-test. 37 var filters = (ImmutableArray<object>)args.Args["filters"]; 38 var filterString = string.Join( 39 ", ", 40 filters 41 .Select(f => (ImmutableDictionary<string,object>)f) 42 .Select(d => 43 { 44 var name = (string)d["name"]; 45 var values = string.Join(", ", ((ImmutableArray<object>)d["values"]).Select(x => (string)x)); 46 return $"name={name} values=[{values}]"; 47 })); 48 filterString = $"[{filterString}]"; 49 var owners = (ImmutableArray<object>)args.Args["owners"]; 50 var ownersString = string.Join(", ", owners.Select(x => (string)x)); 51 var sortAscending = (bool)args.Args["sortAscending"]; 52 var nameRegex = (string)args.Args["nameRegex"]; 53 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 54 dictBuilder.Add("id", $"my-id [owners: {ownersString}] [filters: {filterString}]"); 55 dictBuilder.Add("nameRegex", nameRegex); 56 dictBuilder.Add("sortAscending", sortAscending); 57 var result = dictBuilder.ToImmutableDictionary(); 58 return Task.FromResult((Object)result); 59 } 60 61 throw new Exception($"CallAsync not implemented for {args.Token}.."); 62 } 63 64 public Task<(string? id, object state)> NewResourceAsync(MockResourceArgs args) 65 { 66 throw new Exception("NewResourceAsync not implemented.."); 67 } 68 } 69 }