public static void AreEqual(DateTime?expectedDate, DateTime?actualDate, DateTimeDeltaType deltaType, int count)
        {
            if (expectedDate == null && actualDate == null)
            {
                return;
            }
            else if (expectedDate == null)
            {
                throw new NullReferenceException("The expected date was null");
            }
            else if (actualDate == null)
            {
                throw new NullReferenceException("The actual date was null");
            }

            var expectedDelta          = GetTimeSpanDeltaByType(deltaType, count);
            var totalSecondsDifference = Math.Abs(((DateTime)actualDate - (DateTime)expectedDate).TotalSeconds);

            if (totalSecondsDifference > expectedDelta.TotalSeconds)
            {
                throw new Exception(string.Format("Expected Date: {0}, Actual Date: {1} \nExpected Delta: {2}, Actual Delta in seconds- {3} (Delta Type: {4})",
                                                  expectedDate,
                                                  actualDate,
                                                  expectedDelta,
                                                  totalSecondsDifference,
                                                  deltaType));
            }
        }
예제 #2
0
        private static TimeSpan GetTimeSpanDeltaByType(DateTimeDeltaType type, int count)
        {
            TimeSpan result;

            switch (type)
            {
            case DateTimeDeltaType.Days:
                result = new TimeSpan(count, 0, 0, 0);
                break;

            case DateTimeDeltaType.Minutes:
                result = new TimeSpan(0, count, 0);
                break;

            case DateTimeDeltaType.Hours:
                result = new TimeSpan(count, 0, 0);
                break;

            case DateTimeDeltaType.Seconds:
                result = new TimeSpan(0, 0, count);
                break;

            default:
                throw new NotImplementedException("The type is not implemented yet.");
            }

            return(result);
        }
예제 #3
0
        public static void Validate(DateTime? expectedDate, DateTime? actualDate, DateTimeDeltaType deltaType, int count)
        {
            if (expectedDate == null && actualDate == null)
            {
                return;
            }
            else if (expectedDate == null)
            {
                throw new NullReferenceException("The expected date was null");
            }
            else if (actualDate == null)
            {
                throw new NullReferenceException("The actual date was null");
            }
            TimeSpan expectedDelta = GetTimeSpanDeltaByType(deltaType, count);
            double totalSecondsDifference = Math.Abs(((DateTime)actualDate - (DateTime)expectedDate).TotalSeconds);

            if (totalSecondsDifference > expectedDelta.TotalSeconds)
            {
                throw new Exception(string.Format("Expected Date: {0}, Actual Date: {1} \nExpected Delta: {2}, Actual Delta in seconds- {3} (Delta Type: {4})",
                                                expectedDate,
                                                actualDate,
                                                expectedDelta,
                                                totalSecondsDifference,
                                                deltaType));
            }
        }
예제 #4
0
        public static void AreEqual(
            DateTime?expectedDate,
            DateTime?actualDate,
            DateTimeDeltaType deltaType,
            int count,
            string exceptionMessage = "")
        {
            if (expectedDate == null &&
                actualDate == null)
            {
                return;
            }

            if (expectedDate == null)
            {
                throw new NullReferenceException("The expected date was null");
            }

            if (actualDate == null)
            {
                throw new NullReferenceException("The actual date was null");
            }

            var expectedDelta          = GetTimeSpanDeltaByType(deltaType, count);
            var totalSecondsDifference = Math.Abs(((DateTime)actualDate - (DateTime)expectedDate).TotalSeconds);

            if (totalSecondsDifference > expectedDelta.TotalSeconds)
            {
                throw new Exception($"{exceptionMessage}\nExpected Date: {expectedDate}, Actual Date: {actualDate} \nExpected Delta: {expectedDelta}, Actual Delta in seconds- {totalSecondsDifference} (Delta Type: {deltaType})");
            }
        }
예제 #5
0
        private static TimeSpan GetTimeSpanDeltaByType(DateTimeDeltaType type, int count)
        {
            TimeSpan result = default(TimeSpan);

            switch (type)
            {
                case DateTimeDeltaType.Days: 
                    result = new TimeSpan(count, 0, 0, 0);
                    break;
                case DateTimeDeltaType.Minutes: 
                    result = new TimeSpan(0, count, 0);
                    break;
                default: throw new NotImplementedException("The delta type is not implemented.");
            }

            return result;
        }