public void ChainLinkNode_ShouldAddProcessingLog()
        {
            var timerMock = new Mock <ITimerService>();

            timerMock.Setup(time => time.SimulationMultiplier).Returns(1);
            var conveyorMock = new Mock <OneToOneConveyor>(10, Guid.NewGuid().ToString(), timerMock.Object);

            conveyorMock.SetupGet(conv => conv.Destination).Returns("Psc");
            var bag = new Baggage();

            var node = new CheckInDesk(Guid.NewGuid().ToString(), timerMock.Object);

            node.AddSuccessor(conveyorMock.Object);

            node.PassBaggage(bag);

            bag.Log.Count.ShouldBe(1);
        }
        public void ChainLinkNode_ShouldMove_WhenNextIsFree_AndHasBaggage()
        {
            var timerMock = new Mock <ITimerService>();

            timerMock.Setup(time => time.SimulationMultiplier).Returns(1);
            var conveyorMock = new Mock <OneToOneConveyor>(10, Guid.NewGuid().ToString(), timerMock.Object);

            conveyorMock.SetupGet(conv => conv.Destination).Returns("Psc");
            conveyorMock.SetupGet(conv => conv.Status).Returns(NodeState.Free);
            var bag = new Baggage();

            var node = new CheckInDesk(Guid.NewGuid().ToString(), timerMock.Object);

            node.AddSuccessor(conveyorMock.Object);

            node.PassBaggage(bag);

            conveyorMock.Verify(conv => conv.PassBaggage(bag), Times.Once);
        }
        public void ChainLinkNode_ShouldNotAddTransportingLog_WhenTransportationTImeIsNull()
        {
            var timerMock = new Mock <ITimerService>();

            timerMock.Setup(time => time.SimulationMultiplier).Returns(1);
            var conveyorMock = new Mock <OneToOneConveyor>(10, Guid.NewGuid().ToString(), timerMock.Object);

            conveyorMock.SetupGet(conv => conv.Destination).Returns("Psc");
            var bag = new Baggage();
            //bag.TransportationStartTime = null;

            var node = new CheckInDesk(Guid.NewGuid().ToString(), timerMock.Object);

            node.AddSuccessor(conveyorMock.Object);

            node.PassBaggage(bag);

            bag.Log.Count(l => l.Description.Contains(LoggingConstants.BagTransporterIdText)).ShouldBe(0);
        }
        public ICheckInDesk CreateCheckinDesk(int nodeId)
        {
            ValidateSettings();
            var checkin = new CheckInDesk(nodeId.ToString(), _timerService);

            Nodes.Add(checkin);
            //var sortedFlights = _settings.Flights.OrderBy(f => f.DipartureTime);
            //foreach (var flight in sortedFlights)
            //{
            //    if (checkin.Flight != null)
            //    {
            //        continue;
            //    }
            //    if (flight.HasCheckin == true)
            //    {
            //        continue;
            //    }
            //    checkin.AssignFlight(flight);
            //    flight.HasCheckin = true;
            //}

            return(checkin);
        }