public void OnActivateWithPreviousVisibilityDifferent_ResetsSpriteVisibility(bool hasCharacter) { var character = Substitute.For <CharacterCache>(); var parts = new[] { Substitute.For <CharacterPartCache>(), Substitute.For <CharacterPartCache>() }; character.parts.Returns(parts); m_Model.character.Returns(character); m_Model.hasCharacter.Returns(hasCharacter); m_Model.previousVisibility.Returns(true); m_Model.allVisibility.Returns(false); m_Controller.Activate(); m_Model.Received(1).previousVisibility = false; var recieved = hasCharacter ? 1 : 0; foreach (var p in parts) { p.Received(recieved).isVisible = false; } }