public static IEnumerable <IHttpPathHandler> CreatePathHandlers(IHttpPathHandlerFactory pathHandlerFactory, IPayloadSerializer payloadSerializer, IConfiguration configuration) { // Use Configuration. var restResponseFactory = new RestResponseFactory(); var templatePathHandler = new TemplatePathHandler(restResponseFactory); return(new List <IHttpPathHandler> { pathHandlerFactory.CreateHttpPathHandler("template/path", templatePathHandler.VerbHandlers) }); }
public void ConstructorWith5Args_IfSuccessfulResponse_InitializesCommonProperties() { var data = new[] { new object(), new object(), }; var response = RestResponseFactory.GetSuccessResponse(); var responseContext = new Context(); var requestInResponse = new Request(); var context = It.IsAny <ApiContext>(); var result = new ApiResult <object[]>(data, response, context, responseContext, requestInResponse); Assert.AreEqual(context, result.Context); Assert.AreEqual(response, result.RestResponse); Assert.AreEqual(responseContext, result.ResponseContext); Assert.AreEqual(requestInResponse, result.RequestInResponse); Assert.AreEqual(true, result.IsSuccessful); Assert.AreEqual(default, result.ApiException);
public void GetProjectIssues10K_Success() { MockClient. Setup(x => x.ExecuteTaskAsync(It.Is <IRestRequest>(request => (request.Resource == "api/issues/search") && request.Parameters.Any(param => param.Name == "types" && param.Value.ToString() == "BUG")))). Returns((IRestRequest request) => { var p = request.Parameters.First(param => param.Name == "p").Value; var ps = request.Parameters.First(param => param.Name == "ps").Value; var issue = "{\"key\": \"AWDVIu_vf44sODN6PmH7\", \"rule\": \"cxx:UndocumentedApi\", \"severity\": \"INFO\", \"component\": " + "\"ETAS:INCA:HWA:A1b:LIN/file.cpp\", \"project\": \"ETAS:INCA:HWA:A1b:LIN\", \"line\": 1, \"hash\": \"a133b69778aeed2e9f10f652bd6cffed\", " + "\"textRange\": { \"startLine\": 1, \"endLine\": 1, \"startOffset\": 0, \"endOffset\": 1 }, " + "\"flows\": [], \"status\": \"OPEN\", \"message\": \"Undocumented API: Matches\", \"effort\": \"5min\", " + "\"debt\": \"5min\", \"author\": \"\", \"tags\": [\"convention\"], \"creationDate\": \"2018-01-08T10:37:27+0100\", \"updateDate\": \"2018-01-08T10:37:27+0100\", " + "\"type\": \"BUG\", \"organization\": \"default-organization\" }"; var response = $"{{\"total\": 1, \"p\": {p}, \"ps\": {ps}, \"paging\": {{ \"pageIndex\": {p}, \"pageSize\": {ps}, \"total\": 1 }}, \"issues\": [{issue}]}}"; return(Task.FromResult(RestResponseFactory.Create(response, HttpStatusCode.OK))); }); MockClient. Setup(x => x.ExecuteTaskAsync(It.Is <IRestRequest>(request => (request.Resource == "api/issues/search") && request.Parameters.Any(param => param.Name == "types" && param.Value.ToString() == "CODE_SMELL")))). Returns((IRestRequest request) => { var p = request.Parameters.First(param => param.Name == "p").Value; var ps = request.Parameters.First(param => param.Name == "ps").Value; var response = $"{{\"total\": 0, \"p\": {p}, \"ps\": {ps}, \"paging\": {{ \"pageIndex\": {p}, \"pageSize\": {ps}, \"total\": 0 }}, \"issues\": []}}"; return(Task.FromResult(RestResponseFactory.Create(response, HttpStatusCode.OK))); }); // Simulate 10k issue MockClient. Setup(x => x.ExecuteTaskAsync(It.Is <IRestRequest>(request => (request.Resource == "api/issues/search") && request.Parameters.Any(param => param.Name == "types" && param.Value.ToString() == "VULNERABILITY")))). Returns((IRestRequest request) => { var p = request.Parameters.First(param => param.Name == "p").Value; var ps = request.Parameters.First(param => param.Name == "ps").Value; var issue = "{\"key\": \"AWDVIu_vf44sODN6PmH7\", \"rule\": \"cxx:UndocumentedApi\", \"severity\": \"INFO\", \"component\": " + "\"ETAS:INCA:HWA:A1b:LIN/file.cpp\", \"project\": \"ETAS:INCA:HWA:A1b:LIN\", \"line\": 1, \"hash\": \"a133b69778aeed2e9f10f652bd6cffed\", " + "\"textRange\": { \"startLine\": 1, \"endLine\": 1, \"startOffset\": 0, \"endOffset\": 1 }, " + "\"flows\": [], \"status\": \"OPEN\", \"message\": \"Undocumented API: Matches\", \"effort\": \"5min\", " + "\"debt\": \"5min\", \"author\": \"\", \"tags\": [\"convention\"], \"creationDate\": \"2018-01-08T10:37:27+0100\", \"updateDate\": \"2018-01-08T10:37:27+0100\", " + "\"type\": \"VULNERABILITY\", \"organization\": \"default-organization\" }"; var issues = string.Join(",", Enumerable.Repeat(issue, int.Parse(ps.ToString()))); var response = $"{{\"total\": 24866, \"p\": {p}, \"ps\": {ps}, \"paging\": {{ \"pageIndex\": {p}, \"pageSize\": {ps}, \"total\": 24866 }}, \"issues\": [{issues}]}}"; return(Task.FromResult(RestResponseFactory.Create(response, HttpStatusCode.OK))); }); var service = new IssuesClient(MockClient.Object); var actual = service.GetProjectIssues("ETAS:INCA:HWA:A1b:LIN").Result; // 1 - BUG, 10000 - VULNERABILITY, 0 - CODE_SMELL Assert.That(actual.Count, Is.EqualTo(1 + 10000)); }
public Dispatcher(IEnumerable <IHttpPathHandler> handlers) { _restResponseFactory = new RestResponseFactory(); Handlers = handlers; }
public TemplatePathHandler(RestResponseFactory responseFactory) { _restResponseFactory = responseFactory; VerbHandlers.Add(HttpVerb.Get, GetAsync); }