public async Task FindRoutes(string method, string path, string aResult) { TwinoMvc mvc = new TwinoMvc(); mvc.Init(); mvc.CreateRoutes(Assembly.GetExecutingAssembly()); HttpRequest request = new HttpRequest(); request.Method = method; request.Path = path; HttpResponse response = new HttpResponse(); RouteMatch match = mvc.RouteFinder.Find(mvc.Routes, request); Assert.NotNull(match); TwinoController controller = await mvc.ControllerFactory.CreateInstance(mvc, match.Route.ControllerType, request, response, mvc.Services.CreateScope()); var parameters = MvcConnectionHandler.FillParameters(request, match).Select(x => x.Value).ToArray(); Task <IActionResult> task = (Task <IActionResult>)match.Route.ActionType.Invoke(controller, parameters); IActionResult result = task.Result; string url = Encoding.UTF8.GetString(((MemoryStream)result.Stream).ToArray()); url.Should().Be(aResult); }
public void Run() { TwinoMvc mvc = new TwinoMvc(); HomeController cont = new HomeController(); Assert.NotNull(cont); mvc.Init(); Assembly asm = Assembly.GetExecutingAssembly(); mvc.CreateRoutes(asm); TwinoServer server = new TwinoServer(ServerOptions.CreateDefault()); server.UseMvc(mvc, HttpOptions.CreateDefault()); server.Start(47442); System.Threading.Thread.Sleep(1000); HttpClient client = new HttpClient(); HttpResponseMessage response = client.GetAsync("http://127.0.0.1:47442/home/get").Result; Assert.Equal(HttpStatusCode.OK, response.StatusCode); }