github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/output-funcs/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::funcWithAllOptionalInputs" 19 || args.Token == "mypkg::funcWithDefaultValue") 20 { 21 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 22 var a = args.Args.GetValueOrDefault("a", "null"); 23 var b = args.Args.GetValueOrDefault("b", "null"); 24 dictBuilder.Add("r", $"a={a} b={b}"); 25 var result = dictBuilder.ToImmutableDictionary(); 26 return Task.FromResult((Object)result); 27 } 28 29 if (args.Token == "mypkg::funcWithDictParam") 30 { 31 string aString = "null"; 32 if (args.Args.ContainsKey("a")) 33 { 34 var a = (ImmutableDictionary<string,object>)args.Args["a"]; 35 aString = string.Join(", ", a.Keys.OrderBy(k => k).Select(k => $"{k}: {a[k]}")); 36 aString = $"[{aString}]"; 37 } 38 var b = args.Args.GetValueOrDefault("b", "null"); 39 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 40 dictBuilder.Add("r", $"a={aString} b={b}"); 41 var result = dictBuilder.ToImmutableDictionary(); 42 return Task.FromResult((Object)result); 43 } 44 45 if (args.Token == "mypkg::funcWithListParam") 46 { 47 string aString = "null"; 48 if (args.Args.ContainsKey("a")) 49 { 50 var a = (ImmutableArray<object>)args.Args["a"]; 51 aString = string.Join(", ", a.OrderBy(k => k).Select(e => $"{e}")); 52 aString = $"[{aString}]"; 53 } 54 var b = args.Args.GetValueOrDefault("b", "null"); 55 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 56 dictBuilder.Add("r", $"a={aString} b={b}"); 57 var result = dictBuilder.ToImmutableDictionary(); 58 return Task.FromResult((Object)result); 59 } 60 61 if (args.Token == "mypkg::getIntegrationRuntimeObjectMetadatum") 62 { 63 var argsString = string.Join(", ", args.Args.Keys.OrderBy(k => k).Select(k => $"{k}: {args.Args[k]}")); 64 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 65 var arrayBuilder = ImmutableArray.CreateBuilder<object>(); 66 arrayBuilder.Add(argsString); 67 dictBuilder.Add("value", arrayBuilder.ToImmutableArray()); 68 dictBuilder.Add("nextLink", "my-next-link"); 69 var result = dictBuilder.ToImmutableDictionary(); 70 return Task.FromResult((Object)result); 71 } 72 73 if (args.Token == "mypkg::listStorageAccountKeys") 74 { 75 var argsString = string.Join(", ", args.Args.Keys.OrderBy(k => k).Select(k => $"{k}: {args.Args[k]}")); 76 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 77 var arrayBuilder = ImmutableArray.CreateBuilder<object>(); 78 var elemBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 79 elemBuilder.Add("creationTime", "my-creation-time"); 80 elemBuilder.Add("keyName", "my-key-name"); 81 elemBuilder.Add("permissions", "my-permissions"); 82 elemBuilder.Add("value", "[" + argsString + "]"); 83 arrayBuilder.Add(elemBuilder.ToImmutableDictionary()); 84 dictBuilder.Add("keys", arrayBuilder.ToImmutableArray()); 85 var result = dictBuilder.ToImmutableDictionary(); 86 return Task.FromResult((Object)result); 87 } 88 89 throw new Exception($"CallAsync not implemented for {args.Token}.."); 90 } 91 92 public Task<(string? id, object state)> NewResourceAsync(MockResourceArgs args) 93 { 94 if (args.Type == "mypkg::mockdep") 95 { 96 var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>(); 97 dictBuilder.Add("mockDepOutput", "mock-dep-output-value"); 98 var result = (object)(dictBuilder.ToImmutableDictionary()); 99 return Task.FromResult<(string? id, object state)>((id: "mockDep#1", state: result)); 100 } 101 throw new Exception($"NewResourceAsync not implemented for {args.Type}.."); 102 } 103 } 104 }