public async Task GetResourceNamesAsync_SubnetsReturned_MapsSubnetIdToName()
        {
            // arrange
            DescribeSubnetsReturns(new List <Subnet>
            {
                new Subnet {
                    SubnetId = "Abc123"
                }
            });

            var sut = new VpcSubnetSource(_fakeEc2Client.Object);

            // act
            var result = await sut.GetResourceNamesAsync();

            // assert
            Assert.That(result.Count, Is.EqualTo(1));
            Assert.That(result.First(), Is.EqualTo("Abc123"));
        }
        public async Task GetResourceAsync_SubnetExists_ReturnsWrappedSubnet()
        {
            // arrange
            var subnet = new Subnet {
                SubnetId = "Abc123"
            };

            DescribeSubnetsReturns(new List <Subnet>
            {
                subnet
            });

            var sut = new VpcSubnetSource(_fakeEc2Client.Object);

            // act
            var result = await sut.GetResourceAsync("Abc123");

            // assert
            Assert.That(result, Is.EqualTo(subnet));
        }
        public async Task MultipleCalls_DataLoadedOnce()
        {
            // arrange
            var subnet = new Subnet {
                SubnetId = "Abc123"
            };

            DescribeSubnetsReturns(new List <Subnet>
            {
                subnet
            });

            var sut = new VpcSubnetSource(_fakeEc2Client.Object);

            // act
            await sut.GetResourceNamesAsync();

            await sut.GetResourceAsync("Abc123");

            await sut.GetResourceAsync("Abc123");

            // assert
            _fakeEc2Client.Verify(x => x.DescribeSubnetsAsync(It.IsAny <CancellationToken>()), Times.Once);
        }