< Summary

Class:Microsoft.Azure.Batch.BatchRequestTimeout
Assembly:Microsoft.Azure.Batch
File(s):C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\BatchRequestTimeout.cs
Covered lines:13
Uncovered lines:0
Coverable lines:13
Total lines:52
Line coverage:100% (13 of 13)
Covered branches:6
Total branches:6
Branch coverage:100% (6 of 6)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_ServerTimeout()-100%100%
get_ClientTimeout()-100%100%
.ctor(...)-100%100%
SetTimeoutInterceptor(...)-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\batch\Microsoft.Azure.Batch\src\BatchRequestTimeout.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License. See License.txt in the project root for license information.
 3
 4namespace Microsoft.Azure.Batch
 5{
 6    using System;
 7    using Microsoft.Azure.Batch.Protocol;
 8    using Protocol.Models;
 9
 10    /// <summary>
 11    /// Class which provides easy access to the <see cref="IBatchRequest.Timeout"/> property and the <see cref="Protocol
 12    /// </summary>
 13    public class BatchRequestTimeout : Protocol.RequestInterceptor
 14    {
 15        /// <summary>
 16        /// Gets or sets the server timeout to be applied to each request issued to the Batch service.
 17        /// </summary>
 3618        public TimeSpan? ServerTimeout { get; set; }
 19
 20        /// <summary>
 21        /// Gets or sets the client timeout to be applied to each request issued to the Batch service.
 22        /// </summary>
 3123        public TimeSpan? ClientTimeout { get; set; }
 24
 25        /// <summary>
 26        /// Initializes a new instance of the <see cref="BatchRequestTimeout"/> class.
 27        /// </summary>
 28        /// <param name="serverTimeout">The server timeout to be applied to each request.</param>
 29        /// <param name="clientTimeout">The client timeout to be applied to each request.</param>
 1230        public BatchRequestTimeout(TimeSpan? serverTimeout = null, TimeSpan? clientTimeout = null)
 31        {
 1232            this.ServerTimeout = serverTimeout;
 1233            this.ClientTimeout = clientTimeout;
 34
 1235            base.ModificationInterceptHandler = this.SetTimeoutInterceptor;
 1236        }
 37
 38        private void SetTimeoutInterceptor(Protocol.IBatchRequest request)
 39        {
 1240            if (this.ClientTimeout.HasValue)
 41            {
 742                request.Timeout = this.ClientTimeout.Value;
 43            }
 1244            ITimeoutOptions timeoutOptions = request.Options as ITimeoutOptions;
 1245            if (this.ServerTimeout.HasValue && timeoutOptions != null)
 46            {
 47                //TODO: It would be nice if the Parameters.ServerTimeout property were a TimeSpan not an int
 1248                timeoutOptions.Timeout = (int)this.ServerTimeout.Value.TotalSeconds;
 49            }
 1250        }
 51    }
 52}