Exemple #1
0
        public void CanHandle()
        {
            // arrange
            var generator = new ClientClassGenerator();

            var descriptor = new ClientClassDescriptor(
                "TestClient",
                "ITestClient",
                "global::StrawberryShake.IOperationExecutorPool",
                "global::StrawberryShake.IOperationExecutor",
                "global::StrawberryShake.IOperationStreamExecutor",
                new []
            {
                new ClientOperationMethodDescriptor(
                    "episode",
                    "GetHeroOperation",
                    false,
                    "Task<IOperationResult<IGetHero>>",
                    new[]
                {
                    new ClientOperationMethodParameterDescriptor(
                        "episode",
                        "Episode",
                        "BAZ",
                        true,
                        "foo")
                })
            });

            // act
            var canHandle = generator.CanHandle(descriptor);

            // assert
            Assert.True(canHandle);
        }
        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();
        }