public void FormatAllArgsValid_Expected_ResultFormattedAccordingToOutputFormat()
 {
     string result;
     string errorMsg;
     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 result, out errorMsg);
     string expected = "2011/10/14";
     Assert.AreEqual(expected, result);
 }
 public void FormatAllArgsValid_WithTimeZone_Expected_ResultContainsFullTimezoneName()
 {
     string result;
     string errorMsg;
     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 result, out errorMsg);
     string expected = "2011/10/14 Greenwich Mean Time";
     Assert.AreEqual(expected, result);
 }
        public void FormatOutputFormatNULLorEmpty_Expected_NoOutputFormattingPerformed()
        {
            string result;
            string errorMsg;
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();
            dateTimeTO.DateTime = "14101988";
            dateTimeTO.InputFormat = "ddmmyyyy";
            dateTimeTO.OutputFormat = "";
            dateTimeTO.TimeModifierType = "Years";
            dateTimeTO.TimeModifierAmount = 23;
            formatter.TryFormat(dateTimeTO, out result, out errorMsg);
            string expected = "14102011";

            Assert.AreEqual(expected, result);
        }
        public void FormatInputFormatNULLorEmpty_Expected_DateValueAssumesInputFormat()
        {
            string result;
            string errorMsg;
            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 result, out errorMsg);
            string expected = "2012/8/20";

            Assert.AreEqual(expected, result);
        }
        public void FormatTimeModifierTypeNULLorEmpty_Expected_SameDateReturned()
        {
            string result;
            string errorMsg;
            IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();
            dateTimeTO.DateTime = "14101988";
            dateTimeTO.InputFormat = "ddmmyyyy";
            dateTimeTO.OutputFormat = @"yyyy'/'mm'/'dd";
            dateTimeTO.TimeModifierType = "";
            dateTimeTO.TimeModifierAmount = 0;
            formatter.TryFormat(dateTimeTO, out result, out errorMsg);
            string expected = "1988/10/14";

            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");
        }
 public void FormatDateTimeNULLorEmpty_Expected_ErrorMessageReturnedByFormatter()
 {
     bool isFormatCorrect;
     string result;
     string errorMsg;
     IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();
     dateTimeTO.DateTime = null;
     dateTimeTO.InputFormat = "ddmmyyyy";
     dateTimeTO.OutputFormat = @"yyyy'/'mm'/'dd";
     dateTimeTO.TimeModifierType = "Years";
     dateTimeTO.TimeModifierAmount = 23;
     isFormatCorrect = formatter.TryFormat(dateTimeTO, out result, out errorMsg);
     if (isFormatCorrect)
     {
         Assert.Fail("Incorrect ouput format should not work correctly.");
     }
     else
     {
         Assert.IsTrue(!string.IsNullOrEmpty(errorMsg));
     }
 }
        public void FormatWithTrailingSpacesInInputExpectedOutputDateNotBlank()
        {
            string result;
            string errorMsg;
            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 result, out errorMsg);

            Assert.AreEqual("2011/10/14", result);
        }
        public void FormatWithTrailingZerosInOutputExpectedTrailingZerosNotRemoved()
        {
            string result;
            string errorMsg;
            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;
            formatter.TryFormat(dateTimeTO, out result, out errorMsg);

            Assert.AreEqual("900", result);
        }
        public void FormatTimeModifierTypeInvalid_Expected_DateNotModified()
        {
            string result;
            string errorMsg;
            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 result, out errorMsg);

            Assert.IsTrue(result == "1988/10/14");

        }
 public void FormatInputFormatInvalid_Expected_UnableToParseInvalidInputFormat()
 {
     bool isFormatCorrect;
     string result;
     string errorMsg;
     IDateTimeOperationTO dateTimeTO = new DateTimeOperationTO();
     dateTimeTO.DateTime = "14101988";
     dateTimeTO.InputFormat = "dwakkmslyyabsdh'asdx'";
     dateTimeTO.OutputFormat = @"yyyy'/'mm'/'dd";
     dateTimeTO.TimeModifierType = "Years";
     dateTimeTO.TimeModifierAmount = 23;
     isFormatCorrect = formatter.TryFormat(dateTimeTO, out result, out errorMsg);
     if (isFormatCorrect)
     {
         Assert.Fail("Incorrect ouput format should not work correctly.");
     }
     else
     {
         Assert.IsTrue(!string.IsNullOrEmpty(errorMsg));
     }
 }