public void TimeOfDayModelExtensionsClass_ToTimeOfDayMethod_ThrowsNullReferenceException_IfParameterIsNull()
        {
            TimeOfDayModel testParam = null;

            _ = testParam.ToTimeOfDay();

            Assert.Fail();
        }
        public void TimeofDayModelExtensionsClass_ToTimeOfDayMethod_ThrowsFormatException_IfParameterConsistsOfNonNumericString()
        {
            TimeOfDaySpecification timeOfDaySpecification = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.NonNumericValue);
            TimeOfDayModel         testParam = timeOfDaySpecification.Model;

            _ = testParam.ToTimeOfDay();

            Assert.Fail();
        }
        public void TimeOfDayModelExtensionsClass_ToTimeOfDayMethod_ThrowsFormatException_IfParameterHasTimePropertyThatIsSolelyWhitespace()
        {
            TimeOfDaySpecification testParamSpec = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.WhitespaceValue);
            TimeOfDayModel         testParam     = testParamSpec.Model;

            _ = testParam.ToTimeOfDay();

            Assert.Fail();
        }
        public void TimeOfDayModelExtensionsClass_ToTimeOfDayMethod_ReturnsObjectWithCorrectValue_IfParameterConsistsOfNumberInRangeWithNoColons()
        {
            TimeOfDaySpecification testParamSpec = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursOnly);
            TimeOfDayModel         testParam     = testParamSpec.Model;

            TimeOfDay testOutput = testParam.ToTimeOfDay();

            Assert.AreEqual(testParamSpec.Hours.Value * 3600, testOutput.AbsoluteSeconds);
            Assert.AreEqual(testParamSpec.Hours.Value, testOutput.Hours24);
            Assert.AreEqual(0, testOutput.Minutes);
            Assert.AreEqual(0, testOutput.Seconds);
        }
        public void TimeOfDayModelExtensionsClass_ToTimeOfDayMethod_ReturnsObjectWithCorrectValue_IfParameterConsistsOfTwoNumbersInRangeSeparatedByColon()
        {
            TimeOfDaySpecification testParamSpec = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursAndMinutes);
            int            expectedSeconds       = testParamSpec.Hours.Value * 3600 + testParamSpec.Minutes.Value * 60;
            TimeOfDayModel testParam             = testParamSpec.Model;

            TimeOfDay testOutput = testParam.ToTimeOfDay();

            Assert.AreEqual(expectedSeconds, testOutput.AbsoluteSeconds);
            Assert.AreEqual(testParamSpec.Hours.Value % 24, testOutput.Hours24);
            Assert.AreEqual(testParamSpec.Minutes.Value % 60, testOutput.Minutes);
            Assert.AreEqual(0, testOutput.Seconds);
        }