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); }