Ejemplo n.º 1
0
        public void UpdatingMashReferralThrowsWorkerNotFoundExceptionWhenGetWorkerByWorkerEmailReturnsNull()
        {
            var mashReferralId = _faker.Random.Long();
            var request        = TestHelpers.CreateUpdateMashReferral();

            request.WorkerId = null;
            _databaseGateway.Setup(x => x.GetWorkerByEmail(request.WorkerEmail));

            Action act = () => _mashReferralUseCase.UpdateMashReferral(request, mashReferralId);

            act.Should().Throw <WorkerNotFoundException>()
            .WithMessage($"Worker with email \"{request.WorkerEmail}\" not found");
        }
        public IActionResult UpdateMashReferral([FromBody] UpdateMashReferral request, long referralId)
        {
            var validator  = new UpdateMashReferralValidator();
            var validation = validator.Validate(request);

            if (!validation.IsValid)
            {
                return(BadRequest(validation.ToString()));
            }

            try
            {
                var updatedReferral = _mashReferralUseCase.UpdateMashReferral(request, referralId);
                return(Ok(updatedReferral));
            }
            catch (Exception e) when(
                e is MashReferralNotFoundException ||
                e is WorkerNotFoundException ||
                e is MashReferralStageMismatchException)
            {
                return(BadRequest(e.Message));
            }
        }