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); }