public void AA_ShouldPassBaggageToBagCollector_WhenBagIsForBagCollector()
        {
            var timerServiceMock = new Mock <ITimerService>();

            timerServiceMock.Setup(ts => ts.SimulationMultiplier).Returns(1);

            var flightMock = new Mock <IFlight>();

            flightMock.Setup(b => b.FlightState).Returns(FlightState.InPreparation);

            var bagMock = new Mock <IBaggage>();

            bagMock.Setup(b => b.Destination).Returns(typeof(BagCollector).Name);
            bagMock.Setup(b => b.Flight).Returns(flightMock.Object);

            var bagCollector = new Mock <IChainLink>();

            bagCollector.Setup(bc => bc.Destination).Returns(typeof(BagCollector).Name);

            var aa = new Aa(1, Guid.NewGuid().ToString(), timerServiceMock.Object);

            aa.AddSuccessor(bagCollector.Object);

            aa.PassBaggage(bagMock.Object);

            bagMock.Object.Destination.ShouldBe(typeof(BagCollector).Name);
        }
        public void AA_ShouldPassAddDelayedMessageToLog_WhenBagIsDelayingFlight()
        {
            var timerServiceMock = new Mock <ITimerService>();

            timerServiceMock.Setup(ts => ts.SimulationMultiplier).Returns(1);

            var flightMock = new Mock <IFlight>();

            flightMock.Setup(b => b.FlightState).Returns(FlightState.Departed);

            var bagMock = new Mock <Baggage>();

            bagMock.Object.Destination = typeof(BagCollector).Name;
            bagMock.Object.Flight      = flightMock.Object;

            var bagCollector = new Mock <IChainLink>();

            bagCollector.Setup(bc => bc.Destination).Returns(typeof(BagCollector).Name);

            var aa = new Aa(1, Guid.NewGuid().ToString(), timerServiceMock.Object);

            aa.AddSuccessor(bagCollector.Object);

            aa.PassBaggage(bagMock.Object);

            bagMock.Object.Log.ShouldContain(l => l.Description.Contains(LoggingConstants.BagArrivedLateAtAirportArea));
        }
        public void AA_ShouldPassBaggageToMpa_WhenBagIsForMpa()
        {
            var timerServiceMock = new Mock <ITimerService>();
            var bagMock          = new Mock <IBaggage>();

            bagMock.Setup(b => b.Destination).Returns(typeof(Mpa).Name);
            var mpaMock = new Mock <IChainLink>();

            mpaMock.Setup(mpa => mpa.Destination).Returns(typeof(Mpa).Name);

            var aa = new Aa(1, Guid.NewGuid().ToString(), timerServiceMock.Object);

            aa.AddSuccessor(mpaMock.Object);

            aa.PassBaggage(bagMock.Object);

            bagMock.Object.Destination.ShouldBe(typeof(Mpa).Name);
        }