コード例 #1
0
        public void ObserversAreNotifiedWhenStateChanges_TestObserver_ObserverNotified()
        {
            //Arrange
            var spectatorMock  = new Mock <IObserver>();
            var spectator2Mock = new Mock <IObserver>();

            var monkeyName = "Singe1";
            var monkey     = new Monkey(monkeyName);
            var trickName  = "Salto";
            var trickType  = TrickType.Acrobatie;

            var trick = new Trick(trickName, trickType);

            monkey.Attach(spectatorMock.Object);
            monkey.Attach(spectator2Mock.Object);

            //Act - Assert
            monkey.PerformTrick(trick);

            spectatorMock.Verify(x => x.Update(monkey, trick), Times.Once);
            spectator2Mock.Verify(x => x.Update(monkey, trick), Times.Once);

            monkey.Detach(spectator2Mock.Object);
            spectator2Mock.Invocations.Clear();

            monkey.PerformTrick(trick);

            spectatorMock.Verify(x => x.Update(monkey, trick), Times.Exactly(2));
            spectator2Mock.Verify(x => x.Update(monkey, trick), Times.Never);
        }
コード例 #2
0
        public void PerformTrick_TestSpectator_SpectatorNotified()
        {
            // Arrange

            var spectatorMock = new Mock <IObserver>();

            monkey.Attach(spectatorMock.Object);

            // Act
            monkey.PerformTrick(trick);

            // Assert
            spectatorMock.Verify(x => x.Update(monkey, trick), Times.Once());
        }
コード例 #3
0
        public void SpectactorInteractAfterTrick_ParametersAreFilled_String()
        {
            //Arrange
            var monkeyName = "Singe1";
            var monkey     = new Monkey(monkeyName);

            var spectator = new Spectator("Test", loggerMock.Object);

            //Act
            monkey.Attach(spectator);
            monkey.PerformTrick(trick);

            //Assert
            loggerMock.Verify(x => x.LogMessage($"Spectateur applaudit pendant le tour {trick.trickType} '{trick.trickName}' du {monkey.Name}"));
        }
コード例 #4
0
        public void RemoveObserver_TestSpectator_SpectatorNotNotified()
        {
            //Arrange
            var monkey        = new Monkey(monkeyName);
            var spectatorMock = new Mock <IObserver>();

            monkey.Attach(spectatorMock.Object);
            monkey.Detach(spectatorMock.Object);

            //Act
            monkey.PerformTrick(trick);

            //Assert

            spectatorMock.Verify(x => x.Update(monkey, trick), Times.Never);
        }