Example #1
0
    /// <inheritdoc />
    public async Task <DocumentResponse> GetDocumentAsync(Guid id)
    {
        this._logger.LogDebug(nameof(this.GetDocumentAsync), id);
        var      query    = new GetDocumentQuery(id);
        Document document = await this._mediator.Send(query);

        return(this._mapper.Map <DocumentResponse>(document));
    }
        public async Task Handler_GivenEmptyFilenameParameters_ReturnsNoValue()
        {
            var filename          = "example.pdf";
            var cancellationToken = new CancellationToken();

            var repository = new Mock <IDocumentRepository>();

            repository.Setup(x => x.GetSingle(filename)).Returns((Document)null);

            var request = new GetDocumentQuery(filename);
            var handler = new GetDocumentQueryHandler(repository.Object);

            var result = await handler.Handle(request, cancellationToken);

            result.IsSuccessful.ShouldBeFalse();
            result.Value.ShouldBeNull();
        }
        public async Task Handler_GivenValidFilename_ReturnsDocument()
        {
            var filename          = "example.pdf";
            var contentType       = "application/pdf";
            var bytes             = 1000;
            var cancellationToken = new CancellationToken();

            var dateCreated = new DateTime(2000, 12, 31, 01, 02, 03);
            var repository  = new Mock <IDocumentRepository>();

            repository.Setup(x => x.GetSingle(filename)).Returns(new Document(filename, bytes, contentType, dateCreated));

            var request = new GetDocumentQuery(filename);
            var handler = new GetDocumentQueryHandler(repository.Object);

            var result = await handler.Handle(request, cancellationToken);

            result.IsSuccessful.ShouldBeTrue();
            result.Value.ContentType.ShouldBe(contentType);
            result.Value.Filename.ShouldBe(filename);
            result.Value.Bytes.ShouldBe(bytes);
            result.Value.DateCreated.ShouldBe(dateCreated);
        }