public async Task DisposeAsyncIsPreferred(
            string expectedResponse,
            TestLambdaMessage request,
            ServiceCollection collection,
            ISerializer serializer,
            ILogger logger,
            [Substitute] ILambdaInitializationService initializationService,
            [Substitute] MultiDisposableLambda lambda,
            [Substitute] LambdaScope scope,
            [Substitute] ILambdaContext context
            )
        {
            collection.AddSingleton(serializer);
            collection.AddSingleton(initializationService);
            collection.AddSingleton <TestLambda>(lambda);
            collection.AddSingleton(scope);

            using var inputStream = await CreateStreamForRequest(request);

            var provider = collection.BuildServiceProvider();

            await using (var host = new TestLambdaHost(lambdaHost =>
            {
                lambdaHost.ServiceProvider = provider;
                lambdaHost.RunInitializationServices = false;
                lambdaHost.Logger = logger;
            }))
            {
                await host.Run(inputStream, context);
            }

            await lambda.Received().DisposeAsync();

            lambda.DidNotReceive().Dispose();
        }
        public async Task FinalizationIsSuppressed(
            string expectedResponse,
            TestLambdaMessage request,
            ServiceCollection collection,
            ISerializer serializer,
            ILogger logger,
            [Substitute] Action <object> suppressor,
            [Substitute] ILambdaInitializationService initializationService,
            [Substitute] MultiDisposableLambda lambda,
            [Substitute] LambdaScope scope,
            [Substitute] ILambdaContext context
            )
        {
            collection.AddSingleton(serializer);
            collection.AddSingleton(initializationService);
            collection.AddSingleton <TestLambda>(lambda);
            collection.AddSingleton(scope);

            TestLambdaHost host;

            using var inputStream = await CreateStreamForRequest(request);

            var provider = collection.BuildServiceProvider();

            await using (host = new TestLambdaHost(lambdaHost =>
            {
                lambdaHost.ServiceProvider = provider;
                lambdaHost.RunInitializationServices = false;
                lambdaHost.SuppressFinalize = suppressor;
                lambdaHost.Logger = logger;
            }))
            {
                await host.Run(inputStream, context);
            }

            suppressor.Received()(Is(host));
        }