Beispiel #1
0
        public void Paste_When_Invalid_Course_Then_Returns_BadRequest()
        {
            //Arrange
            MockAuthenticatedStaffUser();
            var lesson      = SeedLesson();
            var arrangeData = ArrangeContentAreaVersionComponent();

            lesson.ContentAreaId = arrangeData.ContentArea.Id;

            var targetComponent = Create <ContentAreaVersionComponent>(
                e => e.ContentAreaVersionId = arrangeData.ContentAreaVersion.Id,
                e => e.ComponentId          = arrangeData.VersionComponent.ComponentId,
                e => e.ParentId             = arrangeData.VersionComponent.ParentId,
                e => e.ContainerName        = arrangeData.VersionComponent.ContainerName,
                e => e.DisplaySequence      = 2
                );

            var dto = new ContentAreaVersionComponentPasteDto()
            {
                SourceId = targetComponent.Id,
                CourseId = -1
            };

            //Act
            var result = Sut.Post(targetComponent.Id, dto).AsBadRequest <Result <ContentAreaVersionComponentDto> >();

            //Assert
            result.ShouldHaveErrors();
            result.ResultObject.ShouldBeNull();
        }
Beispiel #2
0
        public IActionResult Post(long id, [FromBody] ContentAreaVersionComponentPasteDto dto)
        {
            var pasteValidationResult = _pasteValidateConductor.Validate(
                contentAreaVersionComponentId:       id,
                courseId:                            dto.CourseId,
                sourceContentAreaVersionComponentId: dto.SourceId);

            if (pasteValidationResult.HasErrors(ErrorType.Error))
            {
                return(InternalError <ContentAreaVersionComponentDto>(null, pasteValidationResult.Errors));
            }
            if (pasteValidationResult.HasErrors(ErrorType.ValidationError))
            {
                return(BadRequest <ContentAreaVersionComponentDto>(null, pasteValidationResult.Errors));
            }
            var pasteResult = _pasteConductor.Paste(
                id:          id,
                sourceId:    dto.SourceId,
                createdById: CurrentUserId);

            if (pasteResult.HasErrors)
            {
                return(InternalError <ContentAreaVersionComponentDto>(null, pasteResult.Errors));
            }
            if (pasteResult.ResultObject == null)
            {
                return(BadRequest <ContentAreaVersionComponentDto>(null, null));
            }

            return(Created(string.Empty, _mapper.Map <ContentAreaVersionComponentDto>(pasteResult.ResultObject), null));
        }
Beispiel #3
0
        public void Paste_When_Valid_Request_Returns_Created()
        {
            // Arrange
            MockAuthenticatedStaffUser();
            var arrangeTargetComponentData = ArrangeContentAreaVersionComponent();
            var targetComponent            = Create <ContentAreaVersionComponent>(
                e => e.ContentAreaVersionId = arrangeTargetComponentData.ContentAreaVersion.Id,
                e => e.ComponentId          = arrangeTargetComponentData.VersionComponent.ComponentId,
                e => e.ParentId             = arrangeTargetComponentData.VersionComponent.ParentId,
                e => e.ContainerName        = arrangeTargetComponentData.VersionComponent.ContainerName,
                e => e.DisplaySequence      = 5
                );

            var arrangeSourceComponentData = ArrangeContentAreaVersionComponent();
            var lesson = SeedLesson();

            lesson.ContentAreaId = arrangeSourceComponentData.ContentArea.Id;
            var sourceComponent = Create <ContentAreaVersionComponent>(
                e => e.ContentAreaVersionId = arrangeSourceComponentData.ContentAreaVersion.Id,
                e => e.ComponentId          = arrangeSourceComponentData.VersionComponent.ComponentId,
                e => e.ParentId             = arrangeSourceComponentData.VersionComponent.ParentId,
                e => e.ContainerName        = arrangeSourceComponentData.VersionComponent.ContainerName,
                e => e.DisplaySequence      = 2
                );
            var dto = new ContentAreaVersionComponentPasteDto()
            {
                CourseId = lesson.Day.CourseId,
                SourceId = sourceComponent.Id
            };

            // Act
            var result = Sut.Post(targetComponent.Id, dto).AsCreated <Result <ContentAreaVersionComponentDto> >();

            // Assert
            result.ShouldNotHaveErrors();
            result.ResultObject.ShouldNotBeNull();
            result.ResultObject.DisplaySequence.ShouldBe(sourceComponent.DisplaySequence);
            result.ResultObject.ParentId.ShouldBe(sourceComponent.ParentId);
            result.ResultObject.ContainerName.ShouldBe(sourceComponent.ContainerName);
            result.ResultObject.ComponentId.ShouldBe(sourceComponent.ComponentId);
            result.ResultObject.ContentAreaVersionId.ShouldBe(targetComponent.ContentAreaVersionId);


            Reload(targetComponent);
            targetComponent.DeletedOn.ShouldNotBeNull();
        }