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(); }
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)); }
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(); }