github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/output-funcs-tfbridge20/dotnet-extras/Tests/CodegenTests.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.Text;
     8  using System.Text.Json;
     9  using System.Threading.Tasks;
    10  
    11  using FluentAssertions;
    12  using NUnit.Framework;
    13  using Moq;
    14  
    15  using Pulumi;
    16  using Pulumi.Serialization;
    17  using Pulumi.Testing;
    18  
    19  using Pulumi.Mypkg.Outputs;
    20  using static Pulumi.Mypkg.TestHelpers;
    21  
    22  namespace Pulumi.Mypkg
    23  {
    24      [TestFixture]
    25      public class UnitTests
    26      {
    27  
    28          [Test]
    29          public async Task TestListStorageAccountsOutputWorks()
    30          {
    31              Func<StorageAccountKeyResponseResult, string> showSAKR = (r) =>
    32                  $"CreationTime={r.CreationTime} KeyName={r.KeyName} Permissions={r.Permissions} Value={r.Value}";
    33  
    34              Func<string,Func<ListStorageAccountKeysInvokeArgs>,Task> check = (
    35                  (expected, args) => Assert
    36                  .Output(() => ListStorageAccountKeys.Invoke(args()).Apply(x => {
    37                      return "[" + string.Join(", ", x.Keys.Select(k => showSAKR(k))) + "]";
    38                  })).ResolvesTo(expected)
    39              );
    40  
    41              await check("[CreationTime=my-creation-time KeyName=my-key-name Permissions=my-permissions" +
    42                          " Value=[accountName: my-an, expand: my-expand, resourceGroupName: my-rgn]]",
    43                          () => new ListStorageAccountKeysInvokeArgs()
    44                          {
    45                              AccountName = Out("my-an"),
    46                              ResourceGroupName = Out("my-rgn"),
    47                              Expand = Out("my-expand")
    48                          });
    49          }
    50  
    51          [Test]
    52          public async Task TestGetAmiIdsWorks()
    53          {
    54              Func<GetAmiIdsResult, string> showGetAmiIdsResult = (r) =>
    55                  $"Id={r.Id} NameRegex={r.NameRegex} SortAscending={r.SortAscending}";
    56  
    57              Func<string,Func<GetAmiIdsInvokeArgs>,Task> check = (expected, args) =>
    58                  Assert.Output(() => GetAmiIds.Invoke(args()).Apply(x => showGetAmiIdsResult(x)))
    59                  .ResolvesTo(expected);
    60  
    61              var owners = new InputList<string>();
    62              owners.Add(Out("owner-1"));
    63              owners.Add(Out("owner-2"));
    64  
    65              Func<int, Inputs.GetAmiIdsFilterInputArgs> makeFilter = (int i) =>
    66              {
    67                  var values = new InputList<string>();
    68                  values.Add($"value-{i}-1");
    69                  values.Add($"value-{i}-2");
    70                  var f = new Inputs.GetAmiIdsFilterInputArgs() {
    71                      Name = Out($"filter-{i}-name"),
    72                      Values = values
    73                  };
    74                  return f;
    75              };
    76  
    77              var filters = new InputList<Inputs.GetAmiIdsFilterInputArgs>();
    78              filters.Add(makeFilter(1));
    79              filters.Add(makeFilter(2));
    80  
    81              var expectOwners = "[owners: owner-1, owner-2]";
    82              var expectFilters = "[name=filter-1-name values=[value-1-1, value-1-2], name=filter-2-name values=[value-2-1, value-2-2]]";
    83              var expect = $"Id=my-id {expectOwners} [filters: {expectFilters}] NameRegex=[a-z] SortAscending=True";
    84  
    85              await check(expect,
    86                          () => new GetAmiIdsInvokeArgs()
    87                          {
    88                              NameRegex = Out("[a-z]"),
    89                              SortAscending = Out(true),
    90                              Owners = owners,
    91                              Filters = filters
    92                          });
    93          }
    94      }
    95  }