public void Add_S3Returns_Ok_ShouldSuccess() { 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>())) .Returns(() => { return(Task.FromResult(new GetObjectResponse { HttpStatusCode = HttpStatusCode.OK, ResponseStream = returnValue })); }); var s3Store = new S3Store(amazonClient.Object); s3Store.Add(_key, _bucket, bytes); var value = s3Store.Get(_key, _bucket); Assert.NotNull(value); }
public void Get_S3Returns_NotFound_ShouldReturn_Null() { var amazonClient = new Mock <IAmazonS3>(); amazonClient.Setup(x => x.GetObjectAsync(It.IsAny <GetObjectRequest>(), It.IsAny <CancellationToken>())) .ThrowsAsync(new AmazonS3Exception("NotFound", ErrorType.Sender, "0", "", HttpStatusCode.NotFound)); var s3Store = new S3Store(amazonClient.Object); var value = s3Store.Get(_key, _bucket); Assert.Null(value); }
public void Get_S3ReturnsError_ThrowException() { var amazonClient = new Mock <IAmazonS3>(); amazonClient.Setup(x => x.GetObjectAsync(It.IsAny <GetObjectRequest>(), It.IsAny <CancellationToken>())) .Returns(() => { return(Task.FromResult(new GetObjectResponse { HttpStatusCode = HttpStatusCode.InternalServerError })); }); var s3Store = new S3Store(amazonClient.Object); var value = Assert.Throws <CommunicationException>(() => s3Store.Get(_key, _bucket)); Assert.Equal(FaultCodes.S3CommunicationError, value.ErrorCode); }
public void Get_S3ReturnsValue_ShouldReturnValue() { var bytes = Guid.NewGuid().ToByteArray(); var amazonClient = new Mock <IAmazonS3>(); amazonClient.Setup(x => x.GetObjectAsync(It.IsAny <GetObjectRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new GetObjectResponse { HttpStatusCode = HttpStatusCode.OK, ResponseStream = new MemoryStream(bytes) }); var s3Store = new S3Store(amazonClient.Object); var value = s3Store.Get(_key, _bucket); Assert.NotNull(value); }