pulumi/tests/testdata/codegen/output-funcs-tfbridge20/dotnet-extras/Tests/Mocks.cs

70 lines
3.0 KiB
C#

// Copyright 2016-2021, Pulumi Corporation
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Threading.Tasks;
using Pulumi.Testing;
namespace Pulumi.Mypkg
{
public class Mocks : IMocks
{
public Task<object> CallAsync(MockCallArgs args)
{
if (args.Token == "mypkg::listStorageAccountKeys")
{
var argsString = string.Join(", ", args.Args.Keys.OrderBy(k => k).Select(k => $"{k}: {args.Args[k]}"));
var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>();
var arrayBuilder = ImmutableArray.CreateBuilder<object>();
var elemBuilder = ImmutableDictionary.CreateBuilder<string,Object>();
elemBuilder.Add("creationTime", "my-creation-time");
elemBuilder.Add("keyName", "my-key-name");
elemBuilder.Add("permissions", "my-permissions");
elemBuilder.Add("value", "[" + argsString + "]");
arrayBuilder.Add(elemBuilder.ToImmutableDictionary());
dictBuilder.Add("keys", arrayBuilder.ToImmutableArray());
var result = dictBuilder.ToImmutableDictionary();
return Task.FromResult((Object)result);
}
if (args.Token == "mypkg::getAmiIds")
{
// NOTE: only subset of possible fields are tested here in the smoke-test.
var filters = (ImmutableArray<object>)args.Args["filters"];
var filterString = string.Join(
", ",
filters
.Select(f => (ImmutableDictionary<string,object>)f)
.Select(d =>
{
var name = (string)d["name"];
var values = string.Join(", ", ((ImmutableArray<object>)d["values"]).Select(x => (string)x));
return $"name={name} values=[{values}]";
}));
filterString = $"[{filterString}]";
var owners = (ImmutableArray<object>)args.Args["owners"];
var ownersString = string.Join(", ", owners.Select(x => (string)x));
var sortAscending = (bool)args.Args["sortAscending"];
var nameRegex = (string)args.Args["nameRegex"];
var dictBuilder = ImmutableDictionary.CreateBuilder<string,Object>();
dictBuilder.Add("id", $"my-id [owners: {ownersString}] [filters: {filterString}]");
dictBuilder.Add("nameRegex", nameRegex);
dictBuilder.Add("sortAscending", sortAscending);
var result = dictBuilder.ToImmutableDictionary();
return Task.FromResult((Object)result);
}
throw new Exception($"CallAsync not implemented for {args.Token}..");
}
public Task<(string? id, object state)> NewResourceAsync(MockResourceArgs args)
{
throw new Exception("NewResourceAsync not implemented..");
}
}
}