public async Task AddAsync_S3Returns_Ok_ShouldSucess() { var bytes = Guid.NewGuid().ToByteArray(); Stream returnValue = null; var amazonClient = new Mock <IAmazonS3>(); amazonClient.Setup(x => x.PutObjectAsync(It.IsAny <PutObjectRequest>(), It.IsAny <CancellationToken>())) .Callback <PutObjectRequest, CancellationToken>((r, c) => returnValue = r.InputStream) .ReturnsAsync(new PutObjectResponse { HttpStatusCode = HttpStatusCode.OK }); amazonClient.Setup(x => x.GetObjectAsync(It.IsAny <GetObjectRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new GetObjectResponse { HttpStatusCode = HttpStatusCode.OK, ResponseStream = returnValue }); var s3Store = new S3Store(amazonClient.Object); await s3Store.AddAsync(_key, _bucket, bytes); var value = s3Store.GetAsync(_key, _bucket); Assert.NotNull(value); }
public async Task AddAsync_S3ReturnsError_ThrowException() { var bytes = Guid.NewGuid().ToByteArray(); var amazonClient = new Mock <IAmazonS3>(); amazonClient.Setup(x => x.PutObjectAsync(It.IsAny <PutObjectRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new PutObjectResponse { HttpStatusCode = HttpStatusCode.InternalServerError }); var s3Store = new S3Store(amazonClient.Object); var value = await Assert.ThrowsAsync <CommunicationException>(async() => await s3Store.AddAsync(_key, _bucket, bytes)); Assert.Equal(FaultCodes.S3CommunicationError, value.ErrorCode); }