public TimetableEntry(
            string trainNumber,
            DateTime date,
            string departure,
            string arrival,
            string late,
            string travelTime,
            string trainType,
            List <string> tarrifes)
        {
            // Train Number
            TrainNumber = trainNumber;

            // Departure and Arrival
            Departure = TimetableEntryHelper.MergeDateWithStringTime(date, departure);

            Arrival = TimetableEntryHelper.MergeDateWithStringTime(
                date, arrival,
                TimetableEntryHelper.IsTimeSooner(arrival, departure));

            // Late and Travel Time
            Late       = TimetableEntryHelper.ExtractTimeFromString(late);
            TravelTime = TimetableEntryHelper.ExtractTimeFromString(travelTime);

            // Train Type and Tarrife
            Type     = TimetableEntryHelper.GetTrainType(trainType);
            Tarrifes = TimetableEntryHelper.GetTarrifes(tarrifes);
        }
Example #2
0
        public void GetTarrifes_ListIsEmpty_ThrowsArgumentException()
        {
            // Arrange
            var list = new List <string>();

            // Assert
            Assert.ThrowsException <ArgumentException>(() => TimetableEntryHelper.GetTarrifes(list));
        }
Example #3
0
        public void ExtractTimeFromString_Hours()
        {
            // Arrange
            var time     = "2:00";
            var expected = TimeSpan.FromMinutes(120);

            // Act
            var result = TimetableEntryHelper.ExtractTimeFromString(time);

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #4
0
        public void IsTimeSooner_IsNotSoonerSameHour_ReturnsFalse()
        {
            // Arrange
            var time           = "11:25";
            var comparedToTime = "11:11";

            // Act
            var result = TimetableEntryHelper.IsTimeSooner(time, comparedToTime);

            // Assert
            Assert.IsFalse(result);
        }
Example #5
0
        public void IsTimeSooner_IsSooner_ReturnsTrue()
        {
            // Arrange
            var time           = "11:25";
            var comparedToTime = "16:05";

            // Act
            var result = TimetableEntryHelper.IsTimeSooner(time, comparedToTime);

            // Assert
            Assert.IsTrue(result);
        }
Example #6
0
        public void MergeDateWithStringTime_NextDay()
        {
            // Arrange
            var date     = new DateTime(1, 1, 1);
            var time     = "20:30";
            var expected = new DateTime(1, 1, 2, 20, 30, 0);

            // Act
            var result = TimetableEntryHelper.MergeDateWithStringTime(date, time, true);

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #7
0
        public void GetTarrifes_MoreItems()
        {
            // Arrange
            var list = new List <string> {
                "First class", "Second class", "Bicikla"
            };
            var expected = Tarrifes.FirstClass | Tarrifes.SecondClass | Tarrifes.Bicycle;

            // Act
            var result = TimetableEntryHelper.GetTarrifes(list);

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #8
0
        public void GetTarrifes_OneItem()
        {
            // Arrange
            var list = new List <string> {
                "First class"
            };
            var expected = Tarrifes.FirstClass;

            // Act
            var result = TimetableEntryHelper.GetTarrifes(list);

            // Assert
            Assert.AreEqual(expected, result);
        }