Example #1
0
        [TestMethod] public void AddsFirstTimetableCall() {
            var station = TestDataFactory.CreateStation1();
            var target = new Train(TrainCategory.Freight, "G1234");
            var call = new StationCall(station.Tracks.First(), new Time(12,30) , new Time(12,45));
            target.Add(call);

        }
 public void WhenNoCallsThenTimeslotIsFree()
 {
     var target = new StationTrack("1");
     var call = new StationCall(target, new Time(12, 00), new Time(12, 30));
     Assert.AreEqual(1, target.Calls.Count());
     Assert.AreEqual(call, target.Calls.First());
 }
Example #3
0
 public void WhenSecondTimetableCallIsAfterLastThenThrows() {
     var station = TestDataFactory.CreateStation1();
     var target = new Train(TrainCategory.Freight, "G1234");
     var call1 = new StationCall(station.Tracks.First(), new Time(12, 30), new Time(12, 45));
     var call2 = new StationCall(station.Tracks.First(), new Time(12, 50), new Time(12, 55));
     target.Add(call1);
     target.Add(call2);
 }
        public void AddsFirstTimetableCall()
        {
            var station = TestDataFactory.CreateStation1();
            var call    = new StationCall(station.Tracks.First(), new Time(12, 30), new Time(12, 45));

            Target.Add(call);
            Assert.IsFalse(Target.CheckTrainTimeSequence().Any());
        }
        public void WhenSecondTimetableCallIsAfterLastThenThrows()
        {
            var station = TestDataFactory.CreateStation1();
            var call1   = new StationCall(station.Tracks.First(), new Time(12, 30), new Time(12, 45));
            var call2   = new StationCall(station.Tracks.First(), new Time(12, 50), new Time(12, 55));

            Target.Add(call1);
            Target.Add(call2);
        }
 public void WhenCallsNotOverlapsThenTimeslotIsFree()
 {
     var target = new StationTrack("1");
     var call1 = new StationCall(target, new Time(12, 00), new Time(12, 30));
     var call2 = new StationCall(target, new Time(12, 31), new Time(12, 45));
     Assert.AreEqual(2, target.Calls.Count());
     Assert.AreEqual(call1, target.Calls.First());
     Assert.AreEqual(call2, target.Calls.Last());
 }
        public void ArrivalAfterDepartureThrows()
        {
            var track  = TestDataFactory.CreateStationTrack();
            var target = new StationCall(track, new Time(12, 00), new Time(11, 59));

            Train.Add(target);
            var validationErrors = target.GetValidationErrors();

            Assert.AreEqual(1, validationErrors.Count());
            Assert.IsFalse(validationErrors.Any(ve => string.IsNullOrWhiteSpace(ve.Text)));
        }
        public void EqualsWorks()
        {
            TestDataFactory.Init();
            var station = TestDataFactory.CreateStation1();
            var train   = TestDataFactory.CreateTrain1();
            var one     = new StationCall(station.Tracks.First(), new Time(12, 00), new Time(12, 00))
            {
                Train = train
            };
            var another = new StationCall(station.Tracks.First(), new Time(12, 00), new Time(12, 00))
            {
                Train = train
            };

            Assert.AreEqual(one, another);
        }
Example #9
0
        private void btnHold_Click(object sender, EventArgs e)
        {
            StationCall objStationCall = xmlStation.GetCallByCallID(incoming_call_id);

            if (objStationCall != null)
            {
                if ((int)objStationCall.CallState == (int)enCallState.Connecting || (int)objStationCall.CallState == (int)enCallState.Alerting || (int)objStationCall.CallState == (int)enCallState.Connected)
                {
                    callAnswered = false;
                    xmlStation.CallHold(objStationCall);
                }
                if ((int)objStationCall.CallState == (int)enCallState.Hold)
                {
                    xmlStation.CallUnhold();
                    holdTimer.Stop();
                    log.Info("--End hold between: " + objStationCall.CallerDN + " and " + objStationCall.CalledDN + " Duration: " + lblHoldTimer.Text);
                }
            }
        }
 public DepartureTrackStretchCommand(StationCall call, TrackStretch stretch) : base(call, stretch) { }
 public ConfirmTrackStretchCommand(StationCall call, TrackStretch stretch) : base(call, stretch) { }
 public CancelTrackStretchCommand(StationCall call, TrackStretch stretch) : base(call, stretch) { }
Example #13
0
        private static IEnumerable <Message> GetTrains(Timetable timetable, Excel.Workbook book)
        {
            var messages = new List <Message>();

            Excel.Worksheet sheet        = book.Worksheets["Trains"] as Excel.Worksheet;
            var             r            = 2;
            Train           currentTrain = null;

            while (true)
            {
                var row = (Array)sheet.get_Range(Cell("A", r), Cell("K", r)).Cells.Value;
                if (row.GetValue(1, 1) == null)
                {
                    break;
                }
                else
                {
                    var type = row.Value(9).ToUpperInvariant();
                    switch (type)
                    {
                    case "TRAINDEF":
                        if (currentTrain != null)
                        {
                            timetable.AddTrain(currentTrain);
                        }
                        var trainId = row.Value(TrainIdColumn);
                        currentTrain = new Train(trainId.ParseTrainNumber(), trainId)
                        {
                            Category = trainId.ParsesTrainCategory()
                        };
                        break;

                    case "TIMETABLE":
                        try
                        {
                            var station       = timetable.Layout.Station(row.Value(3));
                            var arrivalTime   = Time.Parse(row.Value(5));
                            var departureTime = Time.Parse(row.Value(6));
                            var note          = row.Value(11);
                            if (station.IsNone)
                            {
                                messages.Add(Message.Error(string.Format(CultureInfo.CurrentCulture, Resources.Strings.ThereIsNoStationWithSignatureOrName, station.Value)));
                            }
                            else
                            {
                                var trackNumber = row.Value(4);
                                var track       = station.Value.Track(trackNumber);
                                if (track.IsNone)
                                {
                                    messages.Add(Message.Error(string.Format(CultureInfo.CurrentCulture, Resources.Strings.TrainAtStationAtTimeRefersToANonexistingTrack, currentTrain, station.Value, arrivalTime, departureTime, trackNumber)));
                                }

                                if (messages.CanContinue())
                                {
                                    var call = new StationCall(track.Value, Time.Parse(row.Value(5)), Time.Parse(row.Value(6)));
                                    if (!string.IsNullOrWhiteSpace(note))
                                    {
                                        call.Notes.Add(new StationCallNote(note));
                                    }
                                    currentTrain.Add(call);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            messages.Add(Message.System(ex.Message));
                        }
                        break;

                    default:
                        break;
                    }
                }
                r++;
            }
            if (currentTrain != null)
            {
                timetable.AddTrain(currentTrain);
            }
            return(messages);
        }
 public RequestTrackStretchCommand(StationCall call, TrackStretch stretch) : base(call, stretch) { }
 [TestMethod] public void ArrivalIsNullThrows() {
     var track = new StationTrack("1");
     var target = new StationCall(track, null, new Time(12, 00));
 }
 [TestMethod] public void DepartureIsNullThrows() {
     var track = new StationTrack("1");
     var target = new StationCall(track,  new Time(12, 00), null);
 }
 public ArrivedTrackStretchCommand(StationCall call, TrackStretch stretch) : base(call, stretch) { }
 [TestMethod] public void TrackIsNullThrows() {
     var target = new StationCall(null, new Time(12, 00), new Time(12, 00));
 }
 public void WhenCallsOverlapsThenTimeslotIsNotFree()
 {
     var target = new StationTrack("1");
     var call1 = new StationCall(target, new Time(12, 00), new Time(12, 30));
     var call2 = new StationCall(target, new Time(12, 30), new Time(12, 45));
 }
 protected TrackStretchCommand(StationCall call, TrackStretch stretch) {
     if (stretch == null) throw new ArgumentNullException(nameof(stretch));
     if (call == null) throw new ArgumentNullException(nameof(call));
     Stretch = stretch;
     Call = call;
 }
 [TestMethod] public void ArrivalAfterDepartureThrows() {
     var track = new StationTrack("1");
     var target = new StationCall(track, new Time(12, 00), new Time(11, 59));
 }