public void FormatWithTrailingSpacesInInputExpectedOutputDateNotBlank()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988  ";
            dateTimeTO.InputFormat        = "ddmmyyyy  ";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);

            Assert.AreEqual("2011/10/14", result);
        }
        public void FormatWithTrailingZerosInOutputExpectedTrailingZerosNotRemoved()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "2013/02/07 08:38:56.953 PM";
            dateTimeTO.InputFormat        = "yyyy/mm/dd 12h:min:ss.sp am/pm";
            dateTimeTO.OutputFormat       = "sp";
            dateTimeTO.TimeModifierType   = "Milliseconds";
            dateTimeTO.TimeModifierAmount = -53;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);

            Assert.AreEqual("900", result);
        }
        public void FormatTimeModifierTypeInvalid_Expected_DateNotModified()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988";
            dateTimeTO.InputFormat        = "ddmmyyyy";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "WrongType";
            dateTimeTO.TimeModifierAmount = 23;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);

            Assert.IsTrue(result == "1988/10/14");
        }
        public void FormatOutputFormatNULLorEmpty_Expected_NoOutputFormattingPerformed()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988";
            dateTimeTO.InputFormat        = "ddmmyyyy";
            dateTimeTO.OutputFormat       = "";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);
            const string expected = "14102011";

            Assert.AreEqual(expected, result);
        }
        public void FormatTimeModifierTypeNULLorEmpty_Expected_SameDateReturned()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988";
            dateTimeTO.InputFormat        = "ddmmyyyy";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "";
            dateTimeTO.TimeModifierAmount = 0;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);
            const string expected = "1988/10/14";

            Assert.AreEqual(expected, result);
        }
        public void FormatAllArgsValid_Expected_ResultFormattedAccordingToOutputFormat()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988";
            dateTimeTO.InputFormat        = "ddmmyyyy";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);
            const string expected = "2011/10/14";

            Assert.AreEqual(expected, result);
        }
        public void FormatAllArgsValid_WithTimeZone_Expected_ResultContainsFullTimezoneName()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988GMT";
            dateTimeTO.InputFormat        = "ddmmyyyyZ";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd' 'ZZZ";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);
            const string expected = "2011/10/14 Greenwich Mean Time";

            Assert.AreEqual(expected, result);
        }
        public void FormatInputFormatNULLorEmptyExpectedFullDateTimeFormatUsed()
        {
            string result;
            string errorMsg;
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime     = "Monday, May 06, 2013 10:29:50 AM";
            dateTimeTO.InputFormat  = null;
            dateTimeTO.OutputFormat = @"yyyy'/'mm'/'dd' '12h':'min':'ss' 'am/pm";
            formatter.TryFormat(dateTimeTO, out result, out errorMsg);
            string expected = "2013/05/06 10:29:50 AM";

            Assert.AreEqual(expected, result, "Date time did not default input format to full date time");
        }
示例#9
0
        public void FormatInputFormatNULLorEmptyExpectedInvariantFormatUsed()
        {
            string result   = string.Empty;
            string errorMsg = string.Empty;
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime     = "05/06/2013 10:29:50";
            dateTimeTO.InputFormat  = null;
            dateTimeTO.OutputFormat = @"yyyy'/'mm'/'dd' '12h':'min':'ss' 'am/pm";
            formatter.TryFormat(dateTimeTO, out result, out errorMsg);
            string expected = "2013/05/06 10:29:50 AM";

            Assert.AreEqual(expected, result, "Date time did not default input format to invariant culture");
        }
示例#10
0
        public void FormatInputFormatNULLorEmpty_Expected_DateValueAssumesInputFormat()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "2012/8/20";
            dateTimeTO.InputFormat        = @"yyyy'/'m'/'d";
            dateTimeTO.OutputFormat       = "";
            dateTimeTO.TimeModifierType   = "";
            dateTimeTO.TimeModifierAmount = 0;
            formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);
            const string expected = "2012/8/20";

            Assert.AreEqual(expected, result);
        }
示例#11
0
        public void FormatWithTrailingZerosInOutputExpectedTrailingZerosNotRemoved()
        {
            bool   isFormatCorrect;
            string result   = string.Empty;
            string errorMsg = string.Empty;
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "2013/02/07 08:38:56.953 PM";
            dateTimeTO.InputFormat        = "yyyy/mm/dd 12h:min:ss.sp am/pm";
            dateTimeTO.OutputFormat       = "sp";
            dateTimeTO.TimeModifierType   = "Split Secs";
            dateTimeTO.TimeModifierAmount = -53;
            isFormatCorrect = formatter.TryFormat(dateTimeTO, out result, out errorMsg);

            Assert.AreEqual("900", result);
        }
示例#12
0
        public void StandardDateTimeFormatter_DateOnly_TryFormat_TimeModifierType_Empty()
        {
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "14101988",
                InputFormat        = "ddMMyyyy",
                OutputFormat       = @"yyyy/MM/dd",
                TimeModifierType   = "",
                TimeModifierAmount = 23
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            Assert.AreEqual("1988/10/14", result);
            Assert.AreEqual("", errorMsg);
        }
示例#13
0
        public void StandardDateTimeFormatter_DateAndTime_TryFormat_TimeModifierType_AddHours_PM_To_AM()
        {
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "2011/10/14 08:00:00.000 PM",
                InputFormat        = @"yyyy/MM/dd hh:mm:ss.fff tt",
                OutputFormat       = @"yyyy/MM/dd hh:mm:ss.fff tt",
                TimeModifierType   = "Hours",
                TimeModifierAmount = -34
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            Assert.AreEqual("2011/10/13 10:00:00.000 AM", result);
            Assert.AreEqual("", errorMsg);
        }
示例#14
0
        public void StandardDateTimeFormatter_TryFormat_DateTime_SystemRegionDefaultFormat()
        {
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "14101988",
                InputFormat        = "ddmmyyyy",
                OutputFormat       = @"",
                TimeModifierType   = "Years",
                TimeModifierAmount = 23
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            Assert.AreEqual("01/14/2011 00:10:00", result);
            Assert.AreEqual("", errorMsg);
        }
示例#15
0
        public void StandardDateTimeFormatter_DateAndTime_TryFormat_TimeModifierType_SubtractMilliSeconds()
        {
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "2011/10/14 08:00:00.953",
                InputFormat        = @"yyyy/MM/dd hh:mm:ss.fff",
                OutputFormat       = @"yyyy/MM/dd hh:mm:ss.fff",
                TimeModifierType   = "Milliseconds",
                TimeModifierAmount = -953
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            Assert.AreEqual("2011/10/14 08:00:00.000", result);
            Assert.AreEqual("", errorMsg);
        }
示例#16
0
        public void StandardDateTimeFormatter_DateAndTime_TryFormat_TimeModifierType_AddMinutes()
        {
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "2011/10/14 08:00:00",
                InputFormat        = @"yyyy/MM/dd hh:mm:ss",
                OutputFormat       = @"yyyy/MM/dd hh:mm:ss",
                TimeModifierType   = "Minutes",
                TimeModifierAmount = 55
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            Assert.AreEqual("2011/10/14 08:55:00", result);
            Assert.AreEqual("", errorMsg);
        }
示例#17
0
        public void StandardDateTimeFormatter_DateOnly_TryFormat_TimeModifierType_SubtractDays()
        {
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "14102011 09:00:00",
                InputFormat        = "ddMMyyyy hh:mm:ss",
                OutputFormat       = @"yyyy/MM/dd hh:mm:ss",
                TimeModifierType   = "Days",
                TimeModifierAmount = -15
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            Assert.AreEqual("2011/09/29 09:00:00", result);
            Assert.AreEqual("", errorMsg);
        }
示例#18
0
        public void FormatInputFormatInvalid_Expected_UnableToParseInvalidInputFormat()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "14101988";
            dateTimeTO.InputFormat        = "dwakkmslyyabsdh'asdx'";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            var isFormatCorrect = formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);

            if (isFormatCorrect)
            {
                Assert.Fail("Incorrect ouput format should not work correctly.");
            }
            else
            {
                Assert.IsTrue(!string.IsNullOrEmpty(errorMsg));
            }
        }
示例#19
0
        public void FormatDateTimeInvalid_Expected_ErrorMessageReturnedByFormatter()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = "WrongFormat";
            dateTimeTO.InputFormat        = "ddmmyyyy";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            var isFormatCorrect = formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);

            if (isFormatCorrect)
            {
                Assert.Fail("Incorrect ouput format should not work correctly.");
            }
            else
            {
                Assert.IsTrue(!string.IsNullOrEmpty(errorMsg));
            }
        }
示例#20
0
        public void FormatDateTimeNULLorEmpty_Expected_ErrorMessageReturnedByFormatter()
        {
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();

            dateTimeTO.DateTime           = null;
            dateTimeTO.InputFormat        = "ddmmyyyy";
            dateTimeTO.OutputFormat       = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType   = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            var isFormatCorrect = formatter.TryFormat(dateTimeTO, out string result, out string errorMsg);

            if (isFormatCorrect)
            {
                Assert.Fail("Incorrect ouput format should not work correctly.");
            }
            else
            {
                Assert.AreEqual("Could not parse input datetime with given input format (if you left the input format blank then even after trying default datetime formats from other cultures)", errorMsg);
            }
        }
示例#21
0
        public void StandardDateTimeFormatter_TryFormat_DateTime_Empty_SystemRegionDefaultFormat()
        {
            var format = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat;
            IDateTimeOperationTO dateTimeOperationTO = new DateTimeOperationTO
            {
                DateTime           = "",
                InputFormat        = "ddmmyyyy",
                OutputFormat       = format.ShortDatePattern,
                TimeModifierType   = "Years",
                TimeModifierAmount = 23
            };

            var standardDateTimeFormatter = new StandardDateTimeFormatter();

            var formatResult = standardDateTimeFormatter.TryFormat(dateTimeOperationTO, out string result, out string errorMsg);

            Assert.IsTrue(formatResult);
            var expectedDate = DateTime.Now.AddYears(23);
            var expected     = expectedDate.ToShortDateString();

            Assert.AreEqual(expected, result);
            Assert.AreEqual("", errorMsg);
        }