public void ReadFolder_FolderDoesNotExist_ThrowsNotFoundRequestException() { var query = new ReadFolderQuery(1); var queryHandler = ReadFolderQueryHandlerFactory.CreateForNotFoundRepositoryException(); Should.Throw <NotFoundRequestException>( async() => await queryHandler.Handle(query, CancellationToken.None)); }
public async Task ReadFolder_FolderExists_FolderIsRetrieved() { var folderSeed = new Folder(1, DateTime.UtcNow, "folderName", 2); var query = new ReadFolderQuery(folderSeed.Id); var queryHandler = ReadFolderQueryHandlerFactory.Create(folderSeed); var response = await queryHandler.Handle(query, CancellationToken.None); response.ShouldSatisfyAllConditions( () => response.Id.ShouldBe(folderSeed.Id), () => response.CreationDate.ShouldBe(folderSeed.CreationDate), () => response.Name.ShouldBe(folderSeed.Name), () => response.ParentId.ShouldBe(folderSeed.ParentId) ); }
public async Task <ActionResult <FolderResource> > Get(int id) { try { var query = new ReadFolderQuery(id); var response = await mediator.Send(query); var folderResource = new FolderResource(response); folderResource.EnrichWithLinks(this); return(folderResource); } catch (NotFoundRequestException) { return(NotFound()); } }
public async Task <ActionResult <FolderResource> > Post([FromBody] FolderResource folder) { try { var command = new CreateFolderCommand(folder.Name); var folderId = await mediator.Send(command); var query = new ReadFolderQuery(folderId); var response = await mediator.Send(query); var folderResource = new FolderResource(response); folderResource.EnrichWithLinks(this); return(folderResource); } catch (FolderNameMustBeUniqueInParentRequestException) { return(this.BadRequest(ApiErrors.FolderNameMustBeUniqueInParent)); } }