コード例 #1
0
        public void GenerateMethod_calls_MethodCodeGenerator()
        {
            // arrange
            var generator = new Testable(_methodCodeGen, (_) => true);

            generator.CodeTemplate = "<{Attributes}>-<{Method}>-<{Request}>-<{Response}>";
            generator.MethodName   = "Method";
            generator.RequestType  = typeof(int);
            generator.ResponseType = typeof(string);
            generator.HandlerInfo  = new HandlerInfo(typeof(long), new[] { new AuthorizeAttribute("p.1") });

            var expectedResult = new GeneratedMethod(null, null, null, null);

            A.CallTo(() => _methodCodeGen.GenerateMethod(
                         generator.CodeTemplate,
                         generator.MethodName,
                         generator.RequestType,
                         generator.ResponseType, generator.HandlerInfo))
            .Returns(expectedResult);

            // act
            var result = generator.Generate(null, null);

            // assert
            result.Should().BeSameAs(expectedResult);
        }
コード例 #2
0
        public void Generate_calls_next_generator_when_CanGenerate_returns_false()
        {
            var generateCodeWasCalled = false;
            var nextWasCalled         = false;

            var generator     = new Testable(_methodCodeGen, (_) => false, (_, __) => { generateCodeWasCalled = true; return(null); });
            var nextGenerator = new Testable(_methodCodeGen, (_) => { nextWasCalled = true; return(false); });

            generator.NextGenerator = nextGenerator;

            var result = generator.Generate(null, null);

            // assert that GenerateCode was not called.
            generateCodeWasCalled.Should().BeFalse();
            nextWasCalled.Should().BeTrue();

            result.Should().BeNull();
        }