コード例 #1
0
        public void TestZeroRetries()
        {
            var client = new Mock<IDs3Client>(MockBehavior.Strict);
            MockHelpers.SetupGetObjectWithContentLengthMismatchException(client, "bar", 0L, "ABCDEFGHIJ", 20L, 10L);
                // The initial request is for all 20 bytes, but only the first 10 will be sent

            try
            {
                var stream = new MemoryStream(200);
                var exceptionTransferStrategy = new ReadTransferStrategy();
                var decorator = new PartialDataTransferStrategyDecorator(exceptionTransferStrategy, 0);
                decorator.Transfer(new TransferStrategyOptions
                {
                    Client = client.Object,
                    BucketName = JobResponseStubs.BucketName,
                    ObjectName = "bar",
                    BlobOffset = 0,
                    JobId = JobResponseStubs.JobId,
                    Ranges = new List<Range>(),
                    Stream = stream,
                    ObjectTransferAttempts = 0
                });
                Assert.Fail();
            }
            catch (Ds3NoMoreRetransmitException ex)
            {
                var expectedMessage = string.Format(Resources.NoMoreRetransmitException, "0", "bar", "0");
                Assert.AreEqual(expectedMessage, ex.Message);

                Assert.AreEqual(0, ex.Retries);
            }
        }
コード例 #2
0
        public void TestModifyForRetry2()
        {
            Stream stream = new MemoryStream();
            stream.Position = 10;
            var currentTryBefore = 0;
            IEnumerable<Range> rages = new List<Range>();
            ITransferStrategy transferStrategy = new ReadTransferStrategy();
            BestEffort.ModifyForRetry(stream, 5, ref currentTryBefore, "Test", 10, ref rages, ref transferStrategy,
                new Ds3ContentLengthNotMatch("", 0, 0));

            Assert.AreEqual(1, currentTryBefore);
            Assert.AreEqual(9, stream.Position);
        }