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