< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.IdentityModel.DateTimeUtil
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/IdentityModel/DateTimeUtil.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 16
Coverable lines: 16
Total lines: 80
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 16
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
Add(...)0%880%
AddNonNegative(...)0%220%
GetMaxValue(...)100%110%
GetMinValue(...)100%110%
ToUniversalTime(...)0%440%
ToUniversalTime(...)0%220%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/IdentityModel/DateTimeUtil.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System;
 5
 6namespace CoreWCF.IdentityModel
 7{
 8    internal static class DateTimeUtil
 9    {
 10        /// <summary>
 11        /// Add a DateTime and a TimeSpan.
 12        /// The maximum time is DateTime.MaxTime.  It is not an error if time + timespan > MaxTime.
 13        /// Just return MaxTime.
 14        /// </summary>
 15        /// <param name="time">Initial <see cref="DateTime"/> value.</param>
 16        /// <param name="timespan"><see cref="TimeSpan"/> to add.</param>
 17        /// <returns></returns>
 18        public static DateTime Add(DateTime time, TimeSpan timespan)
 19        {
 020            if (timespan >= TimeSpan.Zero && DateTime.MaxValue - time <= timespan)
 21            {
 022                return GetMaxValue(time.Kind);
 23            }
 24
 025            if (timespan <= TimeSpan.Zero && DateTime.MinValue - time >= timespan)
 26            {
 027                return GetMinValue(time.Kind);
 28            }
 29
 030            return time + timespan;
 31        }
 32
 33        /// <summary>
 34        /// Add a DateTime and a non-negative TimeSpan.
 35        /// The maximum time is DateTime.MaxTime.  It is not an error if time + timespan > MaxTime.
 36        /// Just return MaxTime. If TimeSpan is &lt; TimeSpan.Zero, throw exception.
 37        /// </summary>
 38        /// <param name="time"></param>
 39        /// <param name="timespan"></param>
 40        /// <returns></returns>
 41        public static DateTime AddNonNegative(DateTime time, TimeSpan timespan)
 42        {
 043            if (timespan <= TimeSpan.Zero)
 44            {
 045                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.Format(SR.ID2
 46            }
 047            return Add(time, timespan);
 48        }
 49
 50        public static DateTime GetMaxValue(DateTimeKind kind)
 51        {
 052            return new DateTime(DateTime.MaxValue.Ticks, kind);
 53        }
 54
 55        public static DateTime GetMinValue(DateTimeKind kind)
 56        {
 057            return new DateTime(DateTime.MinValue.Ticks, kind);
 58        }
 59
 60        public static DateTime? ToUniversalTime(DateTime? value)
 61        {
 062            if (null == value || value.Value.Kind == DateTimeKind.Utc)
 63            {
 064                return value;
 65            }
 066            return ToUniversalTime(value.Value);
 67        }
 68
 69        public static DateTime ToUniversalTime(DateTime value)
 70        {
 71
 072            if (value.Kind == DateTimeKind.Utc)
 73            {
 074                return value;
 75            }
 76
 077            return value.ToUniversalTime();
 78        }
 79    }
 80}