Ejemplo n.º 1
0
        public void test04ElevatorControllerCanHaveMoreThanOneView()
        {
            ElevatorController           elevatorController           = new ElevatorController();
            ElevatorControllerConsole    elevatorControllerConsole    = new ElevatorControllerConsole(elevatorController);
            ElevatorControllerStatusView elevatorControllerStatusView = new ElevatorControllerStatusView(elevatorController);

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);

            IEnumerator <String> reader = elevatorControllerConsole.consoleReader();

            reader.MoveNext();
            Assert.AreEqual("Puerta Cerrandose", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Puerta Cerrada", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Cabina Moviendose", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Cabina Detenida", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Puerta Abriendose", reader.Current);
            Assert.IsFalse(reader.MoveNext());

            Assert.AreEqual("Stopped", elevatorControllerStatusView.cabinFieldModel());
            Assert.AreEqual("Opening", elevatorControllerStatusView.cabinDoorFieldModel());
        }
Ejemplo n.º 2
0
        public void testElevatorStartsIdleWithDoorOpenOnFloorZero()
        {
            ElevatorController elevatorController = new ElevatorController();

            Assert.IsTrue(elevatorController.isIdle());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpened());
            Assert.AreEqual(0, elevatorController.cabinFloorNumber());
        }
Ejemplo n.º 3
0
        public void testCloseDoorDoesNothingIfIdle()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.closeCabinDoor();

            Assert.IsTrue(elevatorController.isIdle());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpened());
        }
Ejemplo n.º 4
0
        public void testDoorKeepsOpenedWhenOpeningIsRequested()
        {
            ElevatorController elevatorController = new ElevatorController();

            Assert.IsTrue(elevatorController.isCabinDoorOpened());

            elevatorController.openCabinDoor();

            Assert.IsTrue(elevatorController.isCabinDoorOpened());
        }
Ejemplo n.º 5
0
        public void test01ElevatorControllerConsoleTracksDoorClosingState()
        {
            ElevatorController        elevatorController        = new ElevatorController();
            ElevatorControllerConsole elevatorControllerConsole = new ElevatorControllerConsole(elevatorController);

            elevatorController.goUpPushedFromFloor(1);

            IEnumerator <String> reader = elevatorControllerConsole.consoleReader();

            reader.MoveNext();
            Assert.AreEqual("Puerta Cerrandose", reader.Current);
            Assert.IsFalse(reader.MoveNext());
        }
Ejemplo n.º 6
0
        public void testCabinHasToStopOnFloorsOnItsWayNoMatterHowTheyWellCalled()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(2);
            elevatorController.cabinDoorClosed();
            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinOnFloor(1);

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());
        }
Ejemplo n.º 7
0
        public void testElevatorHasToEnterEmergencyIfDoorClosesAutomatically()
        {
            ElevatorController elevatorController = new ElevatorController();

            try
            {
                elevatorController.cabinDoorClosed();
                Assert.Fail();
            }
            catch (Exception elevatorEmergency)
            {
                Assert.IsTrue(elevatorEmergency.Message == "Sensor de puerta desincronizado");
            }
        }
Ejemplo n.º 8
0
        public void testRequestToGoUpAreEnqueueWhenRequestedWhenCabinIsMoving()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);
            elevatorController.goUpPushedFromFloor(2);
            elevatorController.cabinDoorOpened();

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinWaitingForPeople());
            Assert.IsTrue(elevatorController.isCabinDoorOpened());
        }
Ejemplo n.º 9
0
        public void testCabinDoorStartClosingAfterWaitingForPeople()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);
            elevatorController.goUpPushedFromFloor(2);
            elevatorController.cabinDoorOpened();
            elevatorController.waitForPeopleTimedOut();

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorClosing());
        }
Ejemplo n.º 10
0
        public void testDoorMustBeOpenedWhenCabinIsStoppedAndClosingDoors()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorClosing());

            elevatorController.openCabinDoor();
            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());
        }
Ejemplo n.º 11
0
        public void testElevatorHasToEnterEmergencyIfDoorClosedSensorTurnsOnWhenClosed()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            try
            {
                elevatorController.cabinDoorClosed();
                Assert.Fail();
            }
            catch (Exception elevatorEmergency)
            {
                Assert.IsTrue(elevatorEmergency.Message == "Sensor de puerta desincronizado");
            }
        }
Ejemplo n.º 12
0
        public void testCanNotOpenDoorWhenCabinIsMoving()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinMoving());
            Assert.IsTrue(elevatorController.isCabinDoorClosed());

            elevatorController.openCabinDoor();
            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinMoving());
            Assert.IsTrue(elevatorController.isCabinDoorClosed());
        }
Ejemplo n.º 13
0
        public void testDoorKeepsOpeneingWhenItIsOpeneing()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());

            elevatorController.openCabinDoor();
            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());
        }
Ejemplo n.º 14
0
        public void testElevatorCompletesAllTheRequests()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.goUpPushedFromFloor(2);
            elevatorController.cabinOnFloor(1);
            elevatorController.cabinDoorOpened();
            elevatorController.waitForPeopleTimedOut();
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(2);

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());
        }
Ejemplo n.º 15
0
        public void testCabinDoorStartsClosingWhenElevatorGetsCalled()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);

            Assert.IsFalse(elevatorController.isIdle());
            Assert.IsTrue(elevatorController.isWorking());

            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsFalse(elevatorController.isCabinMoving());

            Assert.IsFalse(elevatorController.isCabinDoorOpened());
            Assert.IsFalse(elevatorController.isCabinDoorOpening());
            Assert.IsTrue(elevatorController.isCabinDoorClosing());
            Assert.IsFalse(elevatorController.isCabinDoorClosed());
        }
Ejemplo n.º 16
0
        public void testCloseDoorDoesNothingWhenOpeningTheDoorToWaitForPeople()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());

            elevatorController.closeCabinDoor();

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());
        }
Ejemplo n.º 17
0
        public void testStopsWaitingForPeopleIfCloseDoorIsPressed()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);
            elevatorController.goUpPushedFromFloor(2);
            elevatorController.cabinDoorOpened();

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinWaitingForPeople());
            Assert.IsTrue(elevatorController.isCabinDoorOpened());

            elevatorController.closeCabinDoor();

            Assert.IsTrue(elevatorController.isWorking());
            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsTrue(elevatorController.isCabinDoorClosing());
        }
Ejemplo n.º 18
0
        public void testCabinStopsAndStartsOpeningDoorWhenGetsToDestination()
        {
            ElevatorController elevatorController = new ElevatorController();

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);

            Assert.IsFalse(elevatorController.isIdle());
            Assert.IsTrue(elevatorController.isWorking());

            Assert.IsTrue(elevatorController.isCabinStopped());
            Assert.IsFalse(elevatorController.isCabinMoving());

            Assert.IsFalse(elevatorController.isCabinDoorOpened());
            Assert.IsTrue(elevatorController.isCabinDoorOpening());
            Assert.IsFalse(elevatorController.isCabinDoorClosing());
            Assert.IsFalse(elevatorController.isCabinDoorClosed());

            Assert.AreEqual(1, elevatorController.cabinFloorNumber());
        }
Ejemplo n.º 19
0
        public void test03ElevatorControllerConsoleTracksCabinAndDoorStateChanges()
        {
            ElevatorController        elevatorController        = new ElevatorController();
            ElevatorControllerConsole elevatorControllerConsole = new ElevatorControllerConsole(elevatorController);

            elevatorController.goUpPushedFromFloor(1);
            elevatorController.cabinDoorClosed();
            elevatorController.cabinOnFloor(1);

            IEnumerator <String> reader = elevatorControllerConsole.consoleReader();

            reader.MoveNext();
            Assert.AreEqual("Puerta Cerrandose", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Puerta Cerrada", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Cabina Moviendose", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Cabina Detenida", reader.Current);
            reader.MoveNext();
            Assert.AreEqual("Puerta Abriendose", reader.Current);
            Assert.IsFalse(reader.MoveNext());
        }
 public ElevatorControllerStatusView(ElevatorController elevatorController)
 {
     elevatorController.SubscribeToControllerOutput(this);
 }
 public CabinDoorClosedState(ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }
 public CabinStoppedState(ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }
 public ElevatorControllerConsole(ElevatorController elevatorController)
 {
     elevatorController.SubscribeToControllerOutput(this);
     console = new List <String>();
 }
Ejemplo n.º 24
0
 public CabinWaitingForPeopleState(ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }
 public ElevatorControllerIsWorkingState(
     ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }
 public ElevatorControllerIdleState(ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }
Ejemplo n.º 27
0
 public CabinMovingState(ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }
Ejemplo n.º 28
0
 public CabinDoorOpeningState(ElevatorController elevatorController)
 {
     this.elevatorController = elevatorController;
 }