Exemple #1
0
        public void SceneBehavior_ShouldUpdateSceneBehaviorOfTheScene_WhenChanged()
        {
            // Arrange
            const string oldSceneBehaviorName = "Old scene behavior";
            const string newSceneBehaviorName = "New scene behavior";

            var scene = TestSceneFactory.Create();

            var oldSceneBehavior = Substitute.ForPartsOf <SceneBehavior>(scene);

            oldSceneBehavior.Name.Returns(oldSceneBehaviorName);

            var newSceneBehavior = Substitute.ForPartsOf <SceneBehavior>(scene);

            newSceneBehavior.Name.Returns(newSceneBehaviorName);

            var newSceneBehaviorFactory = Substitute.For <ISceneBehaviorFactory>();

            newSceneBehaviorFactory.Create(scene).Returns(newSceneBehavior);

            _sceneBehaviorFactoryProvider.Configure().Get(newSceneBehaviorName).Returns(newSceneBehaviorFactory);

            scene.SceneBehavior = oldSceneBehavior;
            var sceneModel = CreateSceneModel(scene);

            // Act
            sceneModel.SceneBehavior = new SceneBehaviorName(newSceneBehaviorName);

            // Assert
            Assert.That(scene.SceneBehavior, Is.EqualTo(newSceneBehavior));
            Assert.That(sceneModel.SceneBehavior.Value, Is.EqualTo("New scene behavior"));
        }
        private SceneBehavior SetUpSceneBehavior(string behaviorName, Scene scene)
        {
            var sceneBehavior = Substitute.ForPartsOf <SceneBehavior>(scene);

            sceneBehavior.Name.Returns(behaviorName);

            var sceneBehaviorFactory = Substitute.For <ISceneBehaviorFactory>();

            sceneBehaviorFactory.BehaviorName.Returns(behaviorName);
            sceneBehaviorFactory.Create(scene).Returns(sceneBehavior);

            _sceneBehaviorFactoryProvider.Configure().Get(behaviorName).Returns(sceneBehaviorFactory);

            return(sceneBehavior);
        }