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