public void Returns_mock_not_found_when_handler_constraints_cannot_be_verified() { var excludePhrase = "OhMyDaysssss"; var handlerWithConstraints = new RequestHandler("", null); handlerWithConstraints.WithUrlConstraint(uri => uri.Contains(excludePhrase) == false); var matchingRule = MockRepository.GenerateMock <IMatchingRule>(); matchingRule.Stub(m => m.IsEndpointMatch(Arg <IRequestHandler> .Is.Anything, Arg <HttpRequestHead> .Is.Anything)).Return(true); ConcurrentDictionary <Guid, RequestHandlerList> lst = new ConcurrentDictionary <Guid, RequestHandlerList>(); RequestHandlerList rList = new RequestHandlerList(); rList.Add(handlerWithConstraints); lst.GetOrAdd(Guid.Empty, rList); var p = new RequestProcessor(matchingRule, lst); var response = MockRepository.GenerateMock <IHttpResponseDelegate>(); p.OnRequest(new HttpRequestHead { Uri = "http://blah.com/cheese/" + excludePhrase }, null, response); var notFoundResponse = (HttpResponseHead)response.GetArgumentsForCallsMadeOn( r => r.OnResponse(Arg <HttpResponseHead> .Is.Anything, Arg <IDataProducer> .Is.Anything))[0][0]; Assert.That(notFoundResponse.Status == "404 NotFound"); }
public void Add(RequestHandler requestHandler) { Guid currentRequestId = Guid.Empty; if (requestHandler.RequestHeaders.ContainsKey(Constants.MockSessionHeaderKey)) { currentRequestId = new Guid(requestHandler.RequestHeaders[Constants.MockSessionHeaderKey]); } else if (requestHandler.RequestHeaders.ContainsKey(Constants.CookieHeaderKey)) { var mockSessionId = requestHandler.RequestHeaders[Constants.CookieHeaderKey].Split("=".ToCharArray()); currentRequestId = new Guid(mockSessionId[1]); } RequestHandlerList lst; if (_handlers.TryGetValue(currentRequestId, out lst)) { lock (lst) { lst.Add(requestHandler); _handlers.TryUpdate(currentRequestId, lst, _handlers[currentRequestId]); } } else { lst = new RequestHandlerList { requestHandler }; _handlers.TryAdd(currentRequestId, lst); } }
public RequestProcessor(IMatchingRule matchingRule, RequestHandlerList requestHandlers) { _handlers = requestHandlers; _requestMatcher = new RequestMatcher(matchingRule); }
public void ClearHandlers() { _handlers = new RequestHandlerList(); }
public RequestProcessor(IMatchingRule matchingRule, RequestHandlerList requestHandlers) { _matchingRule = matchingRule; _handlers = requestHandlers; }