public void Deconstruct(
     out IAmazonRDS rdsClient,
     out IAmazonLambda lambdaClient,
     out IAmazonEventBridge eventsClient,
     out WaitForDatabaseAvailabilityHandler handler
     )
 {
     rdsClient    = RdsClient;
     lambdaClient = LambdaClient;
     eventsClient = EventBridgeClient;
     handler      = StartDatabaseHandler;
 }
#pragma warning restore CS8618, CS0649

            public Task Setup()
            {
                var logger        = Substitute.For <ILogger <WaitForDatabaseAvailabilityHandler> >();
                var configuration = new OptionsWrapper <LambdaConfiguration>(new LambdaConfiguration
                {
                    WaitForDatabaseAvailabilityRuleName = waitForDatabaseAvailabilityRuleName,
                    DequeueEventSourceUUID = dequeueEventSourceUuid,
                });

                StartDatabaseHandler = new WaitForDatabaseAvailabilityHandler(RdsClient, LambdaClient, EventBridgeClient, logger, configuration);
                return(Task.CompletedTask);
            }