コード例 #1
0
        public async Task GetAttachmentByAccessToken_HappyFlow()
        {
            // Arrange
            var attachment = await WolkDbContext.CreateAndSaveAttachment();

            var accessToken = await WolkDbContext.CreateAndSaveAttachmentAccessToken(attachment);

            var token = accessToken.Token;
            var url   = $"/api/note/1/attachments/{attachment.Id + 1}/accessTokens/{token}";

            var request = new HttpRequestMessage(HttpMethod.Get, url);
            var jwt     = await GetJwt();

            request.AddJwtBearer(jwt);

            var path         = Path.Combine(UploadsRootPath, attachment.InternalFilename);
            var uploadedFile = new byte[] { 3, 4, 1, 6, 12 };

            EnsureFileExists(path, uploadedFile);

            // Act
            using var response = await HttpClient.SendAsync(request);

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var content = await response.Content.ReadAsByteArrayAsync();

            Assert.IsTrue(uploadedFile.SequenceEqual(content));
        }
コード例 #2
0
        public async Task Handle_ByToken_TokenNotFound_ShouldThrowNotFoundException()
        {
            // Arrange
            var attachment = await _wolkDbContext.CreateAndSaveAttachment();

            var accessToken = await _wolkDbContext.CreateAndSaveAttachmentAccessToken(attachment);

            var request = new GetAttachmentQuery {
                Token = accessToken.Token + "1"
            };

            // Act
            var exception =
                await Assert.ThrowsExceptionAsync <NotFoundException>(() =>
                                                                      _handler.Handle(request, CancellationToken.None));

            // Assert
            Assert.IsTrue(exception.Message.Contains(nameof(AccessToken)));
            Assert.IsTrue(exception.Message.Contains(accessToken.Token));
        }
コード例 #3
0
        public async Task GetAttachmentByAccessToken_AttachmentNotFound_ShouldReturn404()
        {
            // Arrange
            var attachment = await WolkDbContext.CreateAndSaveAttachment();

            var accessToken = await WolkDbContext.CreateAndSaveAttachmentAccessToken(attachment);

            var token = accessToken.Token + "1";
            var url   = $"/api/note/1/attachments/{attachment.Id + 1}/accessTokens/{token}";

            var request = new HttpRequestMessage(HttpMethod.Get, url);
            var jwt     = await GetJwt();

            request.AddJwtBearer(jwt);

            // Act
            using var response = await HttpClient.SendAsync(request);

            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }