示例#1
0
 public void Dispose()
 {
     _httpRequestHelper         = null;
     _httpResponseMessageHelper = null;
     _userSessionRepository     = null;
     _userSessionRepository     = null;
 }
        public static async Task <HttpResponseMessage> RunAsync(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "collections/{collectionId}")] HttpRequest req, string collectionId,
            ILogger log,
            [Inject] IGetCollectionByIdHtppTriggerService service,
            [Inject] IJsonHelper jsonHelper,
            [Inject] IHttpResponseMessageHelper responseMessageHelper)
        {
            log.LogInformation("Get Collection C# HTTP trigger function processing a request. For CollectionId " + collectionId);

            try
            {
                var collection = await service.ProcessRequestAsync(collectionId);

                if (collection == null)
                {
                    return(responseMessageHelper.NoContent());
                }

                return(responseMessageHelper.Ok(jsonHelper.SerializeObjectAndRenameIdProperty <Collection>(collection, "id", "CollectionId")));
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Get Collection C# HTTP trigger function");
                return(responseMessageHelper.UnprocessableEntity());
            }
        }
示例#3
0
 /// <summary>
 /// make (a) 'system under test'
 /// </summary>
 /// <param name="store">the store</param>
 /// <param name="helper">the (response) helper</param>
 /// <param name="faults">the fault (response provider)</param>
 /// <param name="safe">the safe (operations provider)</param>
 /// <returns>the system under test</returns>
 internal LocalAuthorityManagementFunctionAdapter MakeSUT(
     IValidateLocalAuthorities validator,
     IStoreLocalAuthorities store,
     IHttpResponseMessageHelper helper,
     IProvideFaultResponses faults,
     IProvideSafeOperations safe) =>
 new LocalAuthorityManagementFunctionAdapter(helper, faults, safe, store, validator);
 public NotificationsListenerHttpTrigger(IResourceHelper resourceHelper, IHttpRequestHelper httpRequestMessageHelper, IHttpResponseMessageHelper httpResponseMessageHelper, ISaveNotificationToDatabase saveNotifcation)
 {
     _resourceHelper            = resourceHelper;
     _httpRequestMessageHelper  = httpRequestMessageHelper;
     _httpResponseMessageHelper = httpResponseMessageHelper;
     _saveNotification          = saveNotifcation;
 }
示例#5
0
        public async Task PostAnswerHttpTrigger_WithValidAnswerValue_ShouldHaveIsSuccessInModel()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();
            var postAnswerRequest = new PostAnswerRequest()
            {
                QuestionId     = "1",
                SelectedOption = "Agree"
            };

            _questionRepository.GetQuestion("1").Returns(Task.FromResult(new Question {
                QuestionId = "1"
            }));

            _userSessionRepository.GetUserSession("session1").Returns(Task.FromResult(new UserSession
            {
                AssessmentState = new AssessmentState("QS-1", 5)
            }));

            var json = Newtonsoft.Json.JsonConvert.SerializeObject(postAnswerRequest);

            _request.Body = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json));

            var result = await RunFunction("session1");

            var content = await result.Content.ReadAsAsync <PostAnswerResponse>();

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            Assert.True(content.IsSuccess);
        }
        public async Task ShouldReturnOkWithCorrectSessionIdAndPartitionKey()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();
            _userSessionRepository.GetUserSession("201904-282gk265gzmzyz").Returns(Task.FromResult(new UserSession()
            {
                PartitionKey    = "201904",
                UserSessionId   = "282gk265gzmzyz",
                AssessmentState = new AssessmentState("qs-1", 5)
            }));

            _questionRepository.GetQuestion(1, Arg.Any <string>())
            .Returns(Task.FromResult(new Question
            {
                QuestionId = "1",
                Texts      = new []
                {
                    new QuestionText()
                    {
                        LanguageCode = "en", Text = "Unit test question"
                    }
                },
                Order     = 1,
                TraitCode = "DOER"
            }));

            var result = await RunFunction("282gk265gzmzyz", "short", 1);

            Assert.IsType <HttpResponseMessage>(result);
            var content = await result.Content.ReadAsAsync <AssessmentQuestionResponse>();

            Assert.Equal(HttpStatusCode.OK, result.StatusCode);
            Assert.Equal("201904-282gk265gzmzyz", content.SessionId);
        }
示例#7
0
        public async Task PostAnswerHttpTrigger_UnableToFindQuestion_ShouldReturnNoContent()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();
            var postAnswerRequest = new PostAnswerRequest()
            {
                QuestionId     = "1",
                SelectedOption = "Agree"
            };

            _questionRepository.GetQuestion("1").Returns(Task.FromResult <Question>(null));

            _userSessionRepository.GetUserSession("session1").Returns(Task.FromResult(new UserSession
            {
                AssessmentState = new AssessmentState("QS-1", 5)
            }));

            var json = Newtonsoft.Json.JsonConvert.SerializeObject(postAnswerRequest);

            _request.Body = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json));

            var result = await RunFunction("session1");

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.NoContent, result.StatusCode);
        }
        /// <summary>
        /// create an instance of <see cref="AreaRoutingDetailManagementFunctionAdapter"/>
        /// </summary>
        /// <param name="routingDetails">the storage provider</param>
        /// <param name="responseHelper">the response helper</param>
        /// <param name="faultResponses">the fault responses (provider)</param>
        /// <param name="safeOperations">the safe operations (provider)</param>
        /// <param name="analyser">the expression analyser</param>
        /// <param name="actions">the expression action provider</param>
        public AreaRoutingDetailManagementFunctionAdapter(
            IHttpResponseMessageHelper responseHelper,
            IProvideFaultResponses faultResponses,
            IProvideSafeOperations safeOperations,
            IStoreAreaRoutingDetails routingDetails,
            IValidateRoutingDetails validator,
            IAnalyseExpresssions analyser,
            IProvideExpressionActions actions)
        {
            It.IsNull(responseHelper)
            .AsGuard <ArgumentNullException>(nameof(responseHelper));
            It.IsNull(faultResponses)
            .AsGuard <ArgumentNullException>(nameof(faultResponses));
            It.IsNull(safeOperations)
            .AsGuard <ArgumentNullException>(nameof(safeOperations));
            It.IsNull(routingDetails)
            .AsGuard <ArgumentNullException>(nameof(routingDetails));
            It.IsNull(validator)
            .AsGuard <ArgumentNullException>(nameof(validator));
            It.IsNull(analyser)
            .AsGuard <ArgumentNullException>(nameof(analyser));
            It.IsNull(actions)
            .AsGuard <ArgumentNullException>(nameof(actions));

            Respond        = responseHelper;
            Faults         = faultResponses;
            SafeOperations = safeOperations;
            RoutingDetails = routingDetails;
            RoutingDetail  = validator;
            Analyser       = analyser;
            Actions        = actions;
        }
示例#9
0
        public static async Task <IActionResult> RunAsync(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "collections")] HttpRequest req,
            ILogger log,
            [Inject] IPostCollectionHttpTriggerService service,
            [Inject] IHttpRequestHelper requestHelper,
            [Inject] IHttpResponseMessageHelper responseMessageHelper,
            [Inject] IJsonHelper jsonHelper)
        {
            log.LogInformation("Post Collection C# HTTP trigger function processing a request. Touchpoint " + requestHelper.GetDssTouchpointId(req));

            try
            {
                Collection collection = await requestHelper.GetResourceFromRequest <Collection>(req);

                var result = await service.ProcessRequestAsync(collection);

                if (!result)
                {
                    return(responseMessageHelper.BadRequest() as IActionResult);
                }

                return(responseMessageHelper.Created(jsonHelper.SerializeObjectAndRenameIdProperty(collection, "CollectionId", "id")) as IActionResult);
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Post Collection C# HTTP trigger function");
                return(responseMessageHelper.BadRequest() as IActionResult);
            }
        }
示例#10
0
        public async Task NewFilterSessionHttpTrigger_WithMissingResultData_ShouldReturnBadRequest()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            _userSessionRepository.GetUserSession("session1").Returns(Task.FromResult(new UserSession
            {
                PartitionKey            = "201901",
                FilteredAssessmentState = new FilteredAssessmentState
                {
                    CurrentFilterAssessmentCode = "SC",
                    JobCategoryStates           = new List <JobCategoryState>
                    {
                        new JobCategoryState("SC", "Social Care", "QS-1", new []
                        {
                            new JobCategorySkill(),
                        })
                    }
                },
                ResultData = null
            }));

            var result = await RunFunction("session1", "animal-care");

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
        public static async Task <HttpResponseMessage> RunAsync(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "collections")] HttpRequest req,
            ILogger log,
            [Inject] IGetCollectionsHttpTriggerService service,
            [Inject] IJsonHelper jsonHelper,
            [Inject] IHttpRequestHelper requestHelper,
            [Inject] IHttpResponseMessageHelper responseMessageHelper)
        {
            log.LogInformation("Get Collections C# HTTP trigger function processing a request. TouchpointId " + requestHelper.GetDssTouchpointId(req));

            try
            {
                var results = await service.ProcessRequestAsync();

                if (results.Count == 0)
                {
                    return(responseMessageHelper.NoContent());
                }

                return(responseMessageHelper.Ok(jsonHelper.SerializeObjectsAndRenameIdProperty <Collection>(results, "id", "CollectionId")));
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Get Collections C# HTTP trigger function");
                return(responseMessageHelper.UnprocessableEntity());
            }
        }
示例#12
0
        public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "paths/{path}/regions/{pageRegion}")]
            HttpRequest req,
            ILogger log,
            string path,
            int pageRegion,
            [Inject] ILoggerHelper loggerHelper,
            [Inject] IHttpRequestHelper httpRequestHelper,
            [Inject] IHttpResponseMessageHelper httpResponseMessageHelper,
            [Inject] IJsonHelper jsonHelper,
            [Inject] IRegionService regionService
            )
        {
            loggerHelper.LogMethodEnter(log);

            // validate the parameters are present
            var dssCorrelationId = httpRequestHelper.GetDssCorrelationId(req);

            if (string.IsNullOrEmpty(dssCorrelationId))
            {
                log.LogInformation($"Unable to locate '{nameof(dssCorrelationId)}' in request header");
            }

            if (!Guid.TryParse(dssCorrelationId, out var correlationGuid))
            {
                log.LogInformation($"Unable to parse '{nameof(dssCorrelationId)}' to a Guid");
                correlationGuid = Guid.NewGuid();
            }

            if (string.IsNullOrEmpty(path))
            {
                loggerHelper.LogInformationMessage(log, correlationGuid, $"Missing value in request for '{nameof(path)}'");
                return(httpResponseMessageHelper.BadRequest());
            }

            if (pageRegion == 0 || !Enum.IsDefined(typeof(PageRegions), pageRegion))
            {
                loggerHelper.LogInformationMessage(log, correlationGuid, $"Missing/invalid value in request for '{nameof(pageRegion)}'");
                return(httpResponseMessageHelper.BadRequest());
            }

            PageRegions pageRegionValue = (PageRegions)pageRegion;

            loggerHelper.LogInformationMessage(log, correlationGuid, $"Attempting to get Region {pageRegionValue} for Path {path}");

            var regionModel = await regionService.GetAsync(path, pageRegionValue);

            if (regionModel == null)
            {
                loggerHelper.LogInformationMessage(log, correlationGuid, $"Region does not exist for {pageRegionValue} for Path {path}");
                return(httpResponseMessageHelper.NoContent());
            }

            loggerHelper.LogMethodExit(log);

            return(regionModel != null
                ? httpResponseMessageHelper.Ok(jsonHelper.SerializeObjectAndRenameIdProperty(regionModel, "id", nameof(Models.Region.DocumentId)))
                : httpResponseMessageHelper.NoContent());
        }
示例#13
0
 public GetCollectionByIdHtppTriggerService([Inject] IHttpRequestHelper requestHelper, [Inject] IHttpResponseMessageHelper responseMessageHelper, [Inject] ILoggerHelper loggerHelper, [Inject] IJsonHelper jsonHelper, [Inject] ICollectionDataStore dataStore)
 {
     _requestHelper         = requestHelper;
     _loggerHelper          = loggerHelper;
     _responseMessageHelper = responseMessageHelper;
     _jsonHelper            = jsonHelper;
     _dataStore             = dataStore;
 }
示例#14
0
 public SendSessionSmsHttpTriggerTests()
 {
     _log = Substitute.For <ILogger>();
     _httpRequestHelper         = Substitute.For <IHttpRequestHelper>();
     _httpResponseMessageHelper = new HttpResponseMessageHelper();
     _userSessionRepository     = Substitute.For <IUserSessionRepository>();
     _notifyClient = Substitute.For <INotifyClient>();
 }
 public GetInteractionHttpTrigger(IResourceHelper resourceHelper, IHttpRequestHelper httpRequestMessageHelper, IGetInteractionHttpTriggerService interactionGetService, IHttpResponseMessageHelper httpResponseMessageHelper, IJsonHelper jsonHelper)
 {
     _resourceHelper            = resourceHelper;
     _httpRequestMessageHelper  = httpRequestMessageHelper;
     _interactionGetService     = interactionGetService;
     _httpResponseMessageHelper = httpResponseMessageHelper;
     _jsonHelper = jsonHelper;
 }
示例#16
0
 public NewFilterAssessmentHttpTriggerTests()
 {
     _request                   = new DefaultHttpRequest(new DefaultHttpContext());
     _log                       = Substitute.For <ILogger>();
     _httpRequestHelper         = Substitute.For <IHttpRequestHelper>();
     _httpResponseMessageHelper = Substitute.For <IHttpResponseMessageHelper>();
     _userSessionRepository     = Substitute.For <IUserSessionRepository>();
 }
 public GetTransferHttpTrigger(IResourceHelper resourceHelper, IHttpRequestHelper httpRequestMessageHelper, IGetTransferHttpTriggerService transferGetService, IHttpResponseMessageHelper httpResponseMessageHelper, IJsonHelper jsonHelper)
 {
     _resourceHelper            = resourceHelper;
     _httpRequestMessageHelper  = httpRequestMessageHelper;
     _transferGetService        = transferGetService;
     _httpResponseMessageHelper = httpResponseMessageHelper;
     _jsonHelper = jsonHelper;
 }
        public async Task ShouldReturnBadRequestWithMissingAssessment()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction("201901-session1", null, 1);

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
        public async Task ShouldReturnBadRequestWithMissingSessionId()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction(null, "short", 1);

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
 public PatchTransferHttpTrigger(IResourceHelper resourceHelper, IHttpRequestHelper httpRequestMessageHelper, IValidate validate, IPatchTransferHttpTriggerService transferPatchService, IHttpResponseMessageHelper httpResponseMessageHelper, IJsonHelper jsonHelper)
 {
     _resourceHelper           = resourceHelper;
     _httpRequestMessageHelper = httpRequestMessageHelper;
     _validate                  = validate;
     _transferPatchService      = transferPatchService;
     _httpResponseMessageHelper = httpResponseMessageHelper;
     _jsonHelper                = jsonHelper;
 }
 public PatchInteractionHttpTrigger(IResourceHelper resourceHelper, IHttpRequestHelper httpRequestMessageHelper, IPatchInteractionHttpTriggerService interactionPatchService, IValidate validate, IHttpResponseMessageHelper httpResponseMessageHelper, IJsonHelper jsonHelper)
 {
     _resourceHelper           = resourceHelper;
     _httpRequestMessageHelper = httpRequestMessageHelper;
     _interactionPatchService  = interactionPatchService;
     _validate = validate;
     _httpResponseMessageHelper = httpResponseMessageHelper;
     _jsonHelper = jsonHelper;
 }
        public async Task NewSessionHttpTrigger_WithMissingOptions_ShouldReturnBadRequest()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction();

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
示例#23
0
        public async Task ResultsHttpTriggerTest_WithMissingSessionId_ShouldReturnStatusCodeBadRequest()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction(null);

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
示例#24
0
 /// <summary>
 /// make (a) 'system under test'
 /// </summary>
 /// <param name="store">the store</param>
 /// <param name="helper">the (response) helper</param>
 /// <param name="faults">the fault (response provider)</param>
 /// <param name="safe">the safe (operations provider)</param>
 /// <returns>the system under test</returns>
 internal AreaRoutingDetailManagementFunctionAdapter MakeSUT(
     IStoreAreaRoutingDetails store,
     IValidateRoutingDetails validator,
     IHttpResponseMessageHelper helper,
     IProvideFaultResponses faults,
     IProvideSafeOperations safe,
     IAnalyseExpresssions analyser,
     IProvideExpressionActions actions) =>
 new AreaRoutingDetailManagementFunctionAdapter(helper, faults, safe, store, validator, analyser, actions);
        public async Task ShouldReturnNoContentWithInvalidSessionId()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction("invalid-session-id", "short", 1);

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.NoContent, result.StatusCode);
        }
示例#26
0
        public async Task ResultsHttpTriggerTest_WithInvalidSessionId_ShouldReturnStatusCodeNoContent()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction("invalid-session-id");

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.NoContent, result.StatusCode);
        }
示例#27
0
        public async Task ShouldReturnBadRequestIfCouldNotDecodeSessionId()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();

            var result = await RunFunction("234");

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
 public GetContactByIdHttpTrigger(IResourceHelper resourceHelper,
                                  IHttpRequestHelper httpRequestMessageHelper,
                                  IGetContactDetailsByIdHttpTriggerService getContactDetailsByIdService,
                                  IHttpResponseMessageHelper httpResponseMessageHelper)
 {
     _resourceHelper               = resourceHelper;
     _httpRequestMessageHelper     = httpRequestMessageHelper;
     _getContactDetailsByIdService = getContactDetailsByIdService;
     _httpResponseMessageHelper    = httpResponseMessageHelper;
 }
示例#29
0
        public async Task NewFilterSessionHttpTrigger_WithNoSessionId_ShouldReturnBadRequest()
        {
            _httpResponseMessageHelper = new HttpResponseMessageHelper();


            var result = await RunFunction("", "animal-care");

            Assert.IsType <HttpResponseMessage>(result);
            Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode);
        }
 public void Setup()
 {
     _request                       = new DefaultHttpRequest(new DefaultHttpContext());
     _log                           = new Mock <ILogger>();
     _resourceHelper                = new Mock <IResourceHelper>();
     _httpRequestMessageHelper      = new Mock <IHttpRequestHelper>();
     _getTransferHttpTriggerService = new Mock <IGetTransferHttpTriggerService>();
     _jsonHelper                    = new JsonHelper();
     _responseHelper                = new HttpResponseMessageHelper();
     _function                      = new GetTransferHttpTrigger.Function.GetTransferHttpTrigger(_resourceHelper.Object, _httpRequestMessageHelper.Object, _getTransferHttpTriggerService.Object, _responseHelper, _jsonHelper);
 }