public void ShouldPersistState()
        {
            var subSceneA       = EntityHierarchyNodeId.FromSubScene(1);
            var subSceneB       = EntityHierarchyNodeId.FromSubScene(2);
            var unknownSubScene = EntityHierarchyNodeId.FromSubScene(3);

            EntityHierarchyState.OnFoldingStateChanged(subSceneA, true);
            EntityHierarchyState.OnFoldingStateChanged(subSceneB, false);

            Assert.That(EntityHierarchyState.GetFoldingState(subSceneA), Is.True);
            Assert.That(EntityHierarchyState.GetFoldingState(subSceneB), Is.False);
            Assert.That(EntityHierarchyState.GetFoldingState(unknownSubScene), Is.Null);
        }
        public void ShouldIgnoreEverythingExceptSceneAndSubScenes()
        {
            EntityHierarchyState.OnFoldingStateChanged(EntityHierarchyNodeId.Root, true);
            EntityHierarchyState.OnFoldingStateChanged(EntityHierarchyNodeId.FromEntity(new Entity {
                Index = 1, Version = 1
            }), true);
            EntityHierarchyState.OnFoldingStateChanged(EntityHierarchyNodeId.FromScene(1), true);
            EntityHierarchyState.OnFoldingStateChanged(EntityHierarchyNodeId.FromSubScene(1), false);

            Assert.That(EntityHierarchyState.GetFoldingState(EntityHierarchyNodeId.Root), Is.Null);
            Assert.That(EntityHierarchyState.GetFoldingState(EntityHierarchyNodeId.FromEntity(new Entity {
                Index = 1, Version = 1
            })), Is.Null);
            Assert.That(EntityHierarchyState.GetFoldingState(EntityHierarchyNodeId.FromScene(1)), Is.True);
            Assert.That(EntityHierarchyState.GetFoldingState(EntityHierarchyNodeId.FromSubScene(1)), Is.False);
        }