public void StartServer() { var httpEngine = new HttpEngine(_dataManager, _logger); var port = GetPortConfig(); _server.Prefixes.Add($"http://localhost:{port.PortNumber}/"); //URI prefixes _server.Start(); _logger.Information("Start listening on " + port.PortNumber); while (true) //TODO: Instead of true. Stop server when requested. { var context = _server.GetContext(); _logger.Debug($"{context.Request.HttpMethod} {context.Request.Url}"); var responseMessage = httpEngine.Process(new HttpListenerRequestWrapper(context.Request)); httpEngine.Send(responseMessage, context.Response); } _server.Stop(); // never reached... }
public void It_Should_Return_Correct_ResponseMessage_Given_A_Request(Uri uri, string httpMethod, string body, ResponseMessage expectedResponseMessage) { //arrange var allUsers = Users.CreateTestUsers(); var loggerStub = new LoggerStub(); var mockDatabase = new MockDatabase(allUsers); var httpEngine = new HttpEngine(new DataManager(mockDatabase), loggerStub); var repo = new MemoryStream(Encoding.UTF8.GetBytes(body)); var contentEncoding = Encoding.UTF8; var request = new HttpListenerRequestStub(uri, httpMethod, repo, contentEncoding); //act var responseMessage = httpEngine.Process(request); //assert responseMessage.Should().BeEquivalentTo(expectedResponseMessage); }