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