public void DispatchCreatesAndSendsRequestToDefaultLift()
        {
            LiftCall lr = new LiftCall(LiftDirection.Down, 12);

            Lift lift = sut.FindAvailableLiftForCall(lr);

            Assert.Equal(1, lift.ID);
        }
示例#2
0
 internal Lift FindAvailableLiftForCall(LiftCall lr)
 {
     foreach (var lift in Lifts)
     {
         if (lift.Request(lr))
         {
             return(lift);
         }
     }
     return(null);
 }
示例#3
0
        public void LiftCanAcceptRequestIfWaitingForOrderAndChangesStatusToResponding()
        {
            Lift lift = LiftFactory.CreateLift();

            LiftCall lr = new LiftCall(LiftDirection.Down, 12);

            bool accepted = lift.Request(lr);

            Assert.True(accepted);
            Assert.Equal(LiftStatus.Responding, lift.CurrentStatus);
        }
示例#4
0
        public void LiftIndicatesMovingUpTowardsFloorCall()
        {
            Lift lift = LiftFactory.CreateLift();

            LiftCall lr = new LiftCall(LiftDirection.Down, 12);

            bool accepted = lift.Request(lr);

            Assert.True(accepted);
            Assert.Equal(LiftStatus.Responding, lift.CurrentStatus);
            Assert.Equal(LiftDirection.Up, lift.CurrentDirection);
        }
示例#5
0
        public void LiftRejectsRequestIfRespondingOrDelivering()
        {
            Lift lift = LiftFactory.CreateLift();

            lift.CurrentStatus = LiftStatus.Responding;

            LiftCall lr = new LiftCall(LiftDirection.Down, 12);

            bool accepted = lift.Request(lr);

            Assert.False(accepted);
            Assert.NotEqual(LiftStatus.Awaiting, lift.CurrentStatus);
        }
示例#6
0
        public void LiftCanReceiveRequest()
        {
            Lift lift = null;

            LiftCall lr = new LiftCall(LiftDirection.Down, 12);

            lift = LiftFactory.CreateLift();
            lift.Request(lr);

            LiftCall r = lift.CurrentRequest;

            Assert.NotNull(r);
            Assert.Equal(LiftDirection.Down, r.Direction);
            Assert.Equal(12, r.Floor);
        }