Exemple #1
0
            public async Task Returns200ResponseAndExecutesPage()
            {
                // Arrange
                var           page     = new Mock <IRazorPage>();
                var           executor = new DefaultPageExecutor();
                IRazorRequest request  = TestData.CreateRequest(path: "/Bar");

                page.Setup(p => p.Run(It.IsAny <IRazorRequest>(), It.IsAny <IRazorResponse>()))
                .Returns((IRazorRequest req, IRazorResponse res) =>
                {
                    res.StatusCode   = 200;
                    res.ReasonPhrase = "All good bro";
                    return(Task.FromResult(new object()));
                });

                // Act
                await executor.Execute(page.Object, request.Environment, NullTrace.Instance);

                var response = new RazorResponse(request.Environment);

                // Assert
                // page.Verify(p => p.Run(request, response));
                Assert.Equal(200, response.StatusCode);
                Assert.Equal("All good bro", response.ReasonPhrase);
            }
            public async Task ReturnsResultOfCallingExecutorIfAllPhasesSucceed()
            {
                // Arrange
                TestableEdgeApplication app = CreateEdgeApp(null);

                IFileInfo testFile = app.TestFileSystem.AddTestFile("Bar.cshtml", "Flarg");

                Type compiled = typeof(RazorApplicationTests);
                var  page     = new Mock <IRazorPage>();
                var  resp     = new RazorResponse(TestData.CreateCallParams(path: "/Bar"))
                {
                    StatusCode   = 418,
                    ReasonPhrase = "I'm a teapot"
                };

                app.MockCompilationManager
                .Setup(c => c.Compile(testFile, It.IsAny <ITrace>()))
                .Returns(Task.FromResult(CompilationResult.Successful(null, compiled, Enumerable.Empty <CompilationMessage>())));
                app.MockActivator
                .Setup(a => a.ActivatePage(compiled, It.IsAny <ITrace>()))
                .Returns(ActivationResult.Successful(page.Object));
                app.MockExecutor
                .Setup(e => e.Execute(page.Object, It.IsAny <IDictionary <string, object> >(), It.IsAny <ITrace>()))
                .Returns(Task.FromResult <object>(null));

                // Act
                await app.Invoke(TestData.CreateCallParams(path: "/Bar"));

                // Assert
                Assert.Equal(418, resp.StatusCode);
                Assert.Equal("I'm a teapot", resp.ReasonPhrase);
            }