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  }