Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }