예제 #1
0
        public async Task Handle_LoadBalancerFound_LightsailLoadBalancerReturned()
        {
            //Arrange
            var existingLoadBalancer = new LoadBalancer();

            var fakeAmazonLightsail = Substitute.For <IAmazonLightsail>();

            fakeAmazonLightsail
            .GetLoadBalancerAsync(
                Arg.Is <GetLoadBalancerRequest>(
                    arg => arg.LoadBalancerName == "some-load-balancer"),
                default)
            .Returns(new GetLoadBalancerResponse()
            {
                LoadBalancer = existingLoadBalancer
            });

            var handler = new GetLoadBalancerByNameQueryHandler(
                fakeAmazonLightsail);

            //Act
            var loadBalancer = await handler.Handle(
                new GetLoadBalancerByNameQuery("some-load-balancer"),
                default);

            //Assert
            Assert.IsNotNull(loadBalancer);
            Assert.AreSame(existingLoadBalancer, loadBalancer);
        }
예제 #2
0
        public async Task Handle_LoadBalancerNotFound_ReturnsNull()
        {
            //Arrange
            var fakeAmazonLightsail = Substitute.For <IAmazonLightsail>();

            fakeAmazonLightsail
            .GetLoadBalancerAsync(
                Arg.Is <GetLoadBalancerRequest>(
                    arg => arg.LoadBalancerName == "some-load-balancer"),
                default)
            .Throws(new NotFoundException("Not found"));

            var handler = new GetLoadBalancerByNameQueryHandler(
                fakeAmazonLightsail);

            //Act
            var loadBalancer = await handler.Handle(
                new GetLoadBalancerByNameQuery("some-load-balancer"),
                default);

            //Assert
            Assert.IsNull(loadBalancer);
        }