Пример #1
0
        public void OperationTimeoutIsUsedTest()
        {
            var data = new ConcurrentDictionary <BobKey, byte[]>();

            data[BobKey.FromUInt64(1)] = new byte[] { 1, 2, 3 };

            DateTime?deadline = null;

            var mock = BobNodeClientMockHelper.CreateDataAccessMockedBobApiClient(data, new BobNodeClientMockHelper.MockClientBehaviour(), new BobNodeClientMockHelper.MockClientStat(),
                                                                                  getFunc: (req, opt) =>
            {
                deadline = opt.Deadline;
                return(new BobStorage.Blob()
                {
                    Data = Google.Protobuf.ByteString.CopyFrom(new byte[] { 1, 2, 3 })
                });
            });

            using (var client = BobNodeClientMockHelper.CreateMockedClient("Address = 127.0.0.1; OperationTimeout = 01:00:00", mock))
            {
                var expectedDeadline = DateTime.UtcNow + TimeSpan.FromHours(1);
                client.Get(BobKey.FromUInt64(1));

                Assert.NotNull(deadline);
                var delta = (deadline.Value - expectedDeadline);
                if (delta < TimeSpan.Zero)
                {
                    delta = -delta;
                }
                Assert.True(delta < TimeSpan.FromMinutes(10));
            }
        }