public void ProcessCall(ISocketWrapper socketWrapper) { var result = socketWrapper.PeekToString(9); Exception caughtException = null; // TODO: Add exception handlers for custom exceptions and pass // the exceptions to the respective return processor // Ex: BadRequestException -> HttpBadRequestReturnController try { IHttpCallProcessor callProcessor = VerifyAndExtractProcessor(result); callProcessor.ProcessCall(socketWrapper); } catch (Exception ex) { if (_exceptionHandler.HasResponse(ex.GetType().Name) == false) { throw; } caughtException = ex; } IHttpResponse response = null; if (caughtException != null) { response = _exceptionHandler.GetResponseFromException(caughtException); } }
public void RegisterCallProcessor_With_Null_Or_Null_Key_Throws() { // Arrange IHttpCallProcessor processor = MockRepository.GenerateStub <IHttpCallProcessor>(); // Act // Assert Assert.Throws <NullReferenceException>(() => _controller.RegisterCallProcessor(null)); Assert.Throws <ArgumentNullException>(() => _controller.RegisterCallProcessor(processor)); }
public void Init() { _mockResponseHandler = MockRepository.GenerateStub <IExceptionResponseHandler>(); _controller = new HttpCallController(_mockResponseHandler); _mockProcessor = MockRepository.GenerateStub <IHttpCallProcessor>(); _mockProcessor.Stub(s => s.Method).Return("TEST"); _controller.RegisterCallProcessor(_mockProcessor); _mockWrapper = MockRepository.GenerateStub <INetworkStreamWrapper>(); }
public void RegisterCallProcessor_Adding_Same_Twice_Throws_ArgumentException() { // Arrange IHttpCallProcessor processor = MockRepository.GenerateStub <IHttpCallProcessor>(); processor.Stub(s => s.Method).Return("TEST"); // Act _controller.RegisterCallProcessor(processor); // Assert Assert.Throws <ArgumentException>(() => _controller.RegisterCallProcessor(processor)); }
public void RegisterCallProcessor_With_A_Call_Processor_Adds_Processor() { // Arrange IHttpCallProcessor processor = MockRepository.GenerateStub <IHttpCallProcessor>(); processor.Stub(s => s.Method).Return("TEST"); var preRegisterProcessorCount = _controller.CallProcessors.Count(); // Act _controller.RegisterCallProcessor(processor); var postRegisterProceessorCount = _controller.CallProcessors.Count(); // Assert Assert.AreEqual(0, preRegisterProcessorCount); Assert.AreEqual(1, postRegisterProceessorCount); Assert.AreSame(processor, _controller.CallProcessors.First().Value); }
public void ProcessCall(INetworkStreamWrapper socketWrapper) { var result = socketWrapper.PeekToString(9); Exception caughtException = null; IHttpResponse response = null; try { IHttpCallProcessor callProcessor = VerifyAndExtractProcessor(result); response = callProcessor.ProcessCall(socketWrapper); } catch (Exception ex) { if (_exceptionHandler.HasResponse(ex.GetType().Name) == false) { throw; } response = _exceptionHandler.GetResponseFromException(caughtException); } SendResponse(response, socketWrapper); }
public void RegisterCallProcessor(IHttpCallProcessor callProcessor) { _callProcessors.Add(callProcessor.Method, callProcessor); }