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 Add_S3ReturnsError_ThrowException() { var bytes = Guid.NewGuid().ToByteArray(); var amazonClient = new Mock <IAmazonS3>(); amazonClient.Setup(x => x.PutObjectAsync(It.IsAny <PutObjectRequest>(), It.IsAny <CancellationToken>())) .Returns(() => { return(Task.FromResult(new PutObjectResponse { HttpStatusCode = HttpStatusCode.InternalServerError })); }); var s3Store = new S3Store(amazonClient.Object); var value = Assert.Throws <CommunicationException>(() => s3Store.Add(_key, _bucket, bytes)); Assert.Equal(FaultCodes.S3CommunicationError, value.ErrorCode); }