public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithSignalboxPropertySetToNull_IfSecondParameterIsCollectionThatDoesNotContainSignalboxIdPropertyOfFirstParameter()
        {
            SignalboxHoursModel             testParam0 = GetTestObject();
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithoutItem(testParam0.SignalboxId);

            SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1);

            Assert.IsNull(testOutput.Signalbox);
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ThrowsArgumentNullException_IfSecondParameterIsNull()
        {
            SignalboxHoursModel             testObject = new SignalboxHoursModel();
            IDictionary <string, Signalbox> testParam1 = null;

            _ = testObject.ToSignalboxHours(testParam1);

            Assert.Fail();
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ThrowsNullReferenceException_IfFirstParameterIsNull()
        {
            SignalboxHoursModel             testParam0 = null;
            IDictionary <string, Signalbox> testParam1 = new Dictionary <string, Signalbox>();

            _ = testParam0.ToSignalboxHours(testParam1);

            Assert.Fail();
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithSignalboxPropertySetToNull_IfSecondParameterIsEmptyCollection()
        {
            SignalboxHoursModel             testParam0 = GetTestObject();
            IDictionary <string, Signalbox> testParam1 = new Dictionary <string, Signalbox>();

            SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1);

            Assert.IsNull(testOutput.Signalbox);
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithCorrectSignalboxProperty_IfSecondParameterIsCollectionThatContainsSignalboxIdPropertyOfFirstParameter()
        {
            SignalboxHoursModel             testParam0 = GetTestObject();
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1);

            Assert.AreSame(testParam1[testParam0.SignalboxId], testOutput.Signalbox);
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithTokenBalanceWarningPropertyFalse_IfFirstParameterHasTokenBalanceWarningPropertyThatIsTrue()
        {
            SignalboxHoursModel testParam0 = GetTestObject();

            testParam0.TokenBalanceWarning = true;
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1);

            Assert.IsTrue(testOutput.TokenBalanceWarning);
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ThrowsFormatException_IfFirstParameterHasFinishTimePropertyThatHasTimePropertyThatConsistsOfNonNumericString()
        {
            SignalboxHoursModel testParam0 = GetTestObject();

            testParam0.FinishTime = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.NonNumericValue).Model;
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            _ = testParam0.ToSignalboxHours(testParam1);

            Assert.Fail();
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ThrowsNullReferenceException_IfParameterHasFinishTimePropertyThatIsNull()
        {
            SignalboxHoursModel testParam0 = GetTestObject();

            testParam0.FinishTime = null;
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            _ = testParam0.ToSignalboxHours(testParam1);

            Assert.Fail();
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ThrowsFormatException_IfFirstParameterHasStartTimePropertyThatHasTimePropertyThatIsSolelyWhitespace()
        {
            SignalboxHoursModel testParam0 = GetTestObject();

            testParam0.StartTime = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.WhitespaceValue).Model;
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            _ = testParam0.ToSignalboxHours(testParam1);

            Assert.Fail();
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithEndTimePropertyWithCorrectValue_IfFirstParameterHasFinishTimePropertyThatHasTimePropertyThatConsistsOfMoreThanThreeNumbersInRangeSeparatedByColons()
        {
            SignalboxHoursModel    testParam0 = GetTestObject();
            TimeOfDaySpecification finishTimeSpecification = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursMinutesSecondsAndMore);

            testParam0.FinishTime = finishTimeSpecification.Model;
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1);

            Assert.AreEqual(finishTimeSpecification.Hours.Value, testOutput.EndTime.Hours24);
            Assert.AreEqual(finishTimeSpecification.Minutes.Value, testOutput.EndTime.Minutes);
            Assert.AreEqual(finishTimeSpecification.Seconds.Value, testOutput.EndTime.Seconds);
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithStartTimePropertyWithCorrectValue_IfFirstParameterHasStartTimePropertyThatHasTimePropertyThatConsistsOfNumberInRangeWithNoColons()
        {
            SignalboxHoursModel    testParam0             = GetTestObject();
            TimeOfDaySpecification startTimeSpecification = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursOnly);

            testParam0.StartTime = startTimeSpecification.Model;
            IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId);

            SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1);

            Assert.AreEqual(startTimeSpecification.Hours.Value, testOutput.StartTime.Hours24);
            Assert.AreEqual(0, testOutput.StartTime.Minutes);
            Assert.AreEqual(0, testOutput.StartTime.Seconds);
        }
        public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfSecondParameterIsNull()
        {
            SignalboxHoursModel             testObject = new SignalboxHoursModel();
            IDictionary <string, Signalbox> testParam1 = null;

            try
            {
                _ = testObject.ToSignalboxHours(testParam1);
                Assert.Fail();
            }
            catch (ArgumentNullException ex)
            {
                Assert.AreEqual("signalboxes", ex.ParamName);
            }
        }
Example #13
0
        /// <summary>
        /// Convert a <see cref="SignalboxHoursModel" /> instance into a <see cref="SignalboxHours" /> instance.
        /// </summary>
        /// <param name="model">The data to be converted.</param>
        /// <param name="signalboxes">A dictionary of signalboxes, for mapping signalbox IDs to <see cref="Signalbox" /> objects.</param>
        /// <returns>A <see cref="SignalboxHours" /> instance whose contents match those of the model parameter.</returns>
        public static SignalboxHours ToSignalboxHours(this SignalboxHoursModel model, IDictionary <string, Signalbox> signalboxes)
        {
            if (model is null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (signalboxes is null)
            {
                throw new ArgumentNullException(nameof(signalboxes));
            }

            return(new SignalboxHours
            {
                Signalbox = signalboxes.ContainsKey(model.SignalboxId) ? signalboxes[model.SignalboxId] : null,
                EndTime = model.FinishTime.ToTimeOfDay(),
                StartTime = model.StartTime.ToTimeOfDay(),
                TokenBalanceWarning = model.TokenBalanceWarning,
            });
        }