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  }