Exemplo n.º 1
0
        public async Task Update_Progression_Or_403(Mock <IProgressionService> service, Mock <ISubjectService> subjects, Mock <IConceptService> concepts, User user, Subject subject, Subject invalidSubject, Concept concept)
        {
            concepts.Setup(x => x.Get(concept.Id, It.IsAny <CancellationToken>())).ReturnsAsync(concept);
            subjects.Setup(x => x.Get(subject.Id, It.IsAny <CancellationToken>())).ReturnsAsync(subject);
            subjects.Setup(x => x.Get(invalidSubject.Id, It.IsAny <CancellationToken>())).ReturnsAsync(invalidSubject);

            service.Setup(x => x.Update(user, subject, concept, It.IsAny <CancellationToken>())).ReturnsAsync(true);
            service.Setup(x => x.Update(user, invalidSubject, concept, It.IsAny <CancellationToken>())).ReturnsAsync(false);

            var controller = TestSetup.SetupController <ProgressionController>(service.Object, subjects.Object, concepts.Object).SetupSession(user);

            var validRequest = new ProgressionRequest
            {
                ConceptId = concept.Id,
                SubjectId = subject.Id,
            };

            var invalidRequest = new ProgressionRequest
            {
                ConceptId = concept.Id,
                SubjectId = invalidSubject.Id,
            };

            var result = await controller.UpdateProgression(validRequest);

            var result403 = await controller.UpdateProgression(invalidRequest);

            result.Should().NotBeNull().And.BeOfType <OkResult>();
            result403.Should().NotBeNull().And.BeOfType <ForbidResult>();
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateProgression(ProgressionRequest request)
        {
            var subject = await _subjects.Get(request.SubjectId, HttpContext.RequestAborted);

            var concept = await _concepts.Get(request.ConceptId, HttpContext.RequestAborted);

            var result = await _progression.Update(HttpContext.GetUser(), subject, concept, HttpContext.RequestAborted);

            return(result ? Ok() : Forbid());
        }