public async Task GenerateClient_With_OperationStreamExecutor()
        {
            // arrange
            var sb     = new StringBuilder();
            var writer = new CodeWriter(sb);

            var generator = new ClientClassGenerator();

            var descriptor = new ClientClassDescriptor(
                "TestClient",
                "Demo",
                "ITestClient",
                "global::StrawberryShake.IOperationExecutorPool",
                "global::StrawberryShake.IOperationExecutor",
                "global::StrawberryShake.IOperationStreamExecutor",
                new[]
            {
                new ClientOperationMethodDescriptor(
                    "GetHero",
                    "global::Demo.GetHeroOperation",
                    true,
                    "global::Demo.IGetHero",
                    new[]
                {
                    new ClientOperationMethodParameterDescriptor(
                        "episode",
                        "Episode",
                        "global::Demo.Episode",
                        true,
                        "global::Demo.Episode.NewHope")
                })
            });

            // act
            await generator.WriteAsync(writer, descriptor);

            // assert
            sb.ToString().MatchSnapshot();
        }