Пример #1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)]
            [RequestBodyType(typeof(GetGroupMemberRequest), "Get Group Member")] GetGroupMemberRequest req,
            CancellationToken cancellationToken)
        {
            try
            {
                GetGroupMemberResponse response = await _mediator.Send(req, cancellationToken);

                return(new OkObjectResult(ResponseWrapper <GetGroupMemberResponse, GroupServiceErrorCode> .CreateSuccessfulResponse(response)));
            }
            catch (UnauthorisedException ex)
            {
                return(new ObjectResult(ResponseWrapper <GetGroupMembersResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.UnauthorisedError, "Unauthorised Error"))
                {
                    StatusCode = StatusCodes.Status401Unauthorized
                });
            }
            catch (Exception ex)
            {
                _logger.LogErrorAndNotifyNewRelic($"Unhandled error in GetGroupMember", ex);
                return(new ObjectResult(ResponseWrapper <GetGroupMemberResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.InternalServerError, "Internal Error"))
                {
                    StatusCode = StatusCodes.Status500InternalServerError
                });
            }
        }
Пример #2
0
        public async Task WhenCreatedByUserIsSameAsVolunteerUserID_ReturnsSuccess(GroupRoles role)
        {
            _updateJobStatusOutcome = UpdateJobStatusOutcome.Success;
            _request = new PutUpdateJobStatusToInProgressRequest
            {
                CreatedByUserID = 1,
                JobID           = 1,
                VolunteerUserID = 1
            };
            _getUserGroupsReponse = new GetUserGroupsResponse()
            {
                Groups = new List <int>()
                {
                    1
                }
            };

            _getGroupsForJobResponse = new List <int>()
            {
                1
            };

            _referringGroupId = 1;

            Dictionary <int, List <int> > roles = new Dictionary <int, List <int> >();

            roles.Add(1, new List <int>()
            {
                (int)role
            });

            _getJobDetailsResponse = new GetJobDetailsResponse()
            {
                JobSummary = new JobSummary()
                {
                    JobID           = 1,
                    SupportActivity = SupportActivities.Shopping
                }
            };

            _getGroupMemberResponse = new GetGroupMemberResponse()
            {
                UserInGroup = new UserInGroup()
                {
                    GroupId    = 1,
                    UserId     = 1,
                    GroupRoles = new List <GroupRoles>()
                    {
                        GroupRoles.Member
                    },
                    ValidCredentials = new List <int>()
                    {
                        -1
                    }
                }
            };

            _getGroupActivityCredentialsResponse = new GetGroupActivityCredentialsResponse()
            {
                CredentialSets = new List <List <int> > {
                    new List <int>()
                    {
                        -1
                    }
                }
            };

            _hasPermission = true;

            var response = await _classUnderTest.Handle(_request, CancellationToken.None);

            _repository.Verify(x => x.JobIsInProgressWithSameVolunteerUserId(It.IsAny <int>(), It.IsAny <int?>()), Times.Once);
            _groupService.Verify(x => x.GetUserGroups(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _groupService.Verify(x => x.GetGroupMember(It.IsAny <GetGroupMemberRequest>()), Times.Once);
            _groupService.Verify(x => x.GetGroupActivityCredentials(It.IsAny <GetGroupActivityCredentialsRequest>()), Times.Once);
            _repository.Verify(x => x.GetGroupsForJobAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _repository.Verify(x => x.GetReferringGroupIDForJobAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _groupService.Verify(x => x.GetGroupMember(It.IsAny <GetGroupMemberRequest>()), Times.Once);
            _groupService.Verify(x => x.GetGroupActivityCredentials(It.IsAny <GetGroupActivityCredentialsRequest>()), Times.Once);
            _repository.Verify(x => x.UpdateJobStatusInProgressAsync(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once);
            _communicationService.Verify(x => x.RequestCommunication(It.IsAny <RequestCommunicationRequest>(), It.IsAny <CancellationToken>()), Times.Once);
            Assert.AreEqual(UpdateJobStatusOutcome.Success, response.Outcome);
        }
Пример #3
0
        public async Task WhenAccessRestrictedByRole_ReturnsCorrectResponse(int createdByUserId, GroupRoles role, Fulfillable fulfillable, int timesGroupMemberCalled)
        {
            requestId      = 1;
            _validPostcode = true;
            _emailSent     = true;
            int referringGroupId = -20;

            Guid guid    = Guid.NewGuid();
            var  request = new PostNewRequestForHelpRequest
            {
                HelpRequest = new HelpRequest
                {
                    RequestorType = RequestorType.Myself,
                    Recipient     = new RequestPersonalDetails
                    {
                        Address = new Address
                        {
                            Postcode = "test",
                        }
                    },
                    VolunteerUserId  = 1,
                    CreatedByUserId  = createdByUserId,
                    ReferringGroupId = referringGroupId
                },
                NewJobsRequest = new NewJobsRequest
                {
                    Jobs = new List <Job>
                    {
                        new Job
                        {
                            Guid            = guid,
                            HealthCritical  = true,
                            DueDays         = 5,
                            SupportActivity = SupportActivities.Shopping
                        }
                    }
                }
            };

            _formVariantResponse = new GetRequestHelpFormVariantResponse()
            {
                AccessRestrictedByRole   = true,
                RequestorDefinedByGroup  = true,
                RequestHelpFormVariant   = RequestHelpFormVariant.Default,
                TargetGroups             = TargetGroups.GenericGroup,
                RequestorPersonalDetails = new RequestPersonalDetails()
                {
                    FirstName    = "First",
                    LastName     = "Last",
                    EmailAddress = "Email",
                    MobileNumber = "Mobile",
                    OtherNumber  = "Other"
                },
                SuppressRecipientPersonalDetails = true
            };

            _getGroupMemberResponse = new GetGroupMemberResponse()
            {
                UserInGroup = new UserInGroup()
                {
                    UserId     = 1,
                    GroupId    = 1,
                    GroupRoles = new List <GroupRoles>()
                    {
                        role
                    }
                }
            };

            _getGroupResponse = new GetGroupResponse()
            {
                Group = new Group()
                {
                    GroupId = referringGroupId
                }
            };

            _getUserRolesResponse = new GetUserRolesResponse()
            {
                UserGroupRoles = new Dictionary <int, List <int> >()
            };

            _getNewRequestActionsResponse = new GetNewRequestActionsResponse()
            {
                Actions = new Dictionary <Guid, TaskAction>(), RequestTaskActions = new Dictionary <NewTaskAction, List <int> >()
            };
            _getNewRequestActionsResponse.Actions.Add(guid, new TaskAction()
            {
                TaskActions = new Dictionary <NewTaskAction, List <int> >()
            });
            _getNewRequestActionsResponse.Actions[guid].TaskActions.Add(NewTaskAction.AssignToVolunteer, new List <int>()
            {
                1
            });

            var response = await _classUnderTest.Handle(request, new CancellationToken());

            _groupService.Verify(x => x.GetRequestHelpFormVariant(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.Once);
            _groupService.Verify(x => x.GetGroupMember(It.IsAny <GetGroupMemberRequest>()), Times.Exactly(timesGroupMemberCalled));
            Assert.AreEqual(fulfillable, response.Fulfillable);
        }