< Summary

Class:Tests.ScenesViewControllerShould
Assembly:BuilderProjectsPanelTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuilderProjectsPanel/Tests/ScenesViewControllerShould.cs
Covered lines:46
Uncovered lines:0
Coverable lines:46
Total lines:161
Line coverage:100% (46 of 46)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetUp()0%110100%
TearDown()0%110100%
CallListenerEventsCorrectly()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuilderProjectsPanel/Tests/ScenesViewControllerShould.cs

#LineLine coverage
 1using NUnit.Framework;
 2using System.Collections.Generic;
 3using UnityEditor;
 4
 5namespace Tests
 6{
 7    public class ScenesViewControllerShould
 8    {
 9        private IScenesViewController scenesViewController;
 10        private Listener_Mock listenerMock;
 11
 12        [SetUp]
 13        public void SetUp()
 14        {
 15            const string prefabAssetPath =
 16                "Assets/Scripts/MainScripts/DCL/Controllers/HUD/BuilderProjectsPanel/Prefabs/SceneCardView.prefab";
 117            var prefab = AssetDatabase.LoadAssetAtPath<SceneCardView>(prefabAssetPath);
 18
 119            scenesViewController = new ScenesViewController(prefab);
 120            listenerMock = new Listener_Mock();
 21
 122            scenesViewController.OnDeployedSceneRemoved += ((IDeployedSceneListener)listenerMock).OnSceneRemoved;
 123            scenesViewController.OnDeployedSceneAdded += ((IDeployedSceneListener)listenerMock).OnSceneAdded;
 124            scenesViewController.OnDeployedScenesSet += ((IDeployedSceneListener)listenerMock).OnSetScenes;
 25
 126            scenesViewController.OnProjectSceneRemoved += ((IProjectSceneListener)listenerMock).OnSceneRemoved;
 127            scenesViewController.OnProjectSceneAdded += ((IProjectSceneListener)listenerMock).OnSceneAdded;
 128            scenesViewController.OnProjectScenesSet += ((IProjectSceneListener)listenerMock).OnSetScenes;
 129        }
 30
 31        [TearDown]
 232        public void TearDown() { scenesViewController.Dispose(); }
 33
 34        [Test]
 35        public void CallListenerEventsCorrectly()
 36        {
 137            scenesViewController.SetScenes(new ISceneData[] { new SceneData() { id = "1", isDeployed = true } });
 38
 139            Assert.AreEqual(1, listenerMock.deployedScenes.Count);
 140            Assert.AreEqual(1, listenerMock.setScenes.Count);
 141            Assert.AreEqual(0, listenerMock.addedScenes.Count);
 142            Assert.AreEqual(0, listenerMock.removedScenes.Count);
 143            Assert.AreEqual(0, listenerMock.projectScenes.Count);
 44
 145            listenerMock.Clear();
 46
 147            scenesViewController.SetScenes(new ISceneData[]
 48            {
 49                new SceneData() { id = "1", isDeployed = true },
 50                new SceneData() { id = "2", isDeployed = true }
 51            });
 52
 153            Assert.AreEqual(2, listenerMock.deployedScenes.Count);
 154            Assert.AreEqual(0, listenerMock.setScenes.Count);
 155            Assert.AreEqual(1, listenerMock.addedScenes.Count);
 156            Assert.AreEqual(0, listenerMock.removedScenes.Count);
 157            Assert.AreEqual(0, listenerMock.projectScenes.Count);
 58
 159            listenerMock.Clear();
 60
 161            scenesViewController.SetScenes(new ISceneData[]
 62            {
 63                new SceneData() { id = "1", isDeployed = true },
 64                new SceneData() { id = "2", isDeployed = false }
 65            });
 66
 167            Assert.AreEqual(1, listenerMock.deployedScenes.Count);
 168            Assert.AreEqual(1, listenerMock.setScenes.Count);
 169            Assert.AreEqual(0, listenerMock.addedScenes.Count);
 170            Assert.AreEqual(1, listenerMock.removedScenes.Count);
 171            Assert.AreEqual(1, listenerMock.projectScenes.Count);
 72
 173            listenerMock.Clear();
 74
 175            scenesViewController.SetScenes(new ISceneData[]
 76            {
 77                new SceneData() { id = "1", isDeployed = true },
 78                new SceneData() { id = "2", isDeployed = false }
 79            });
 80
 181            Assert.AreEqual(1, listenerMock.deployedScenes.Count);
 182            Assert.AreEqual(0, listenerMock.setScenes.Count);
 183            Assert.AreEqual(0, listenerMock.addedScenes.Count);
 184            Assert.AreEqual(0, listenerMock.removedScenes.Count);
 185            Assert.AreEqual(1, listenerMock.projectScenes.Count);
 86
 187            listenerMock.Clear();
 88
 189            scenesViewController.SetScenes(new ISceneData[]
 90            {
 91                new SceneData() { id = "1", isDeployed = false },
 92                new SceneData() { id = "2", isDeployed = false }
 93            });
 94
 195            Assert.AreEqual(0, listenerMock.deployedScenes.Count);
 196            Assert.AreEqual(0, listenerMock.setScenes.Count);
 197            Assert.AreEqual(1, listenerMock.addedScenes.Count);
 198            Assert.AreEqual(1, listenerMock.removedScenes.Count);
 199            Assert.AreEqual(2, listenerMock.projectScenes.Count);
 1100        }
 101    }
 102
 103    class Listener_Mock : IDeployedSceneListener, IProjectSceneListener
 104    {
 105        public List<string> setScenes = new List<string>();
 106        public List<string> addedScenes = new List<string>();
 107        public List<string> removedScenes = new List<string>();
 108
 109        public List<string> deployedScenes = new List<string>();
 110        public List<string> projectScenes = new List<string>();
 111
 112        public void Clear()
 113        {
 114            setScenes.Clear();
 115            addedScenes.Clear();
 116            removedScenes.Clear();
 117        }
 118
 119        void IDeployedSceneListener.OnSetScenes(Dictionary<string, ISceneCardView> scenes)
 120        {
 121            foreach (var view in scenes.Values)
 122            {
 123                setScenes.Add(view.sceneData.id);
 124                deployedScenes.Add(view.sceneData.id);
 125            }
 126        }
 127
 128        void IDeployedSceneListener.OnSceneAdded(ISceneCardView scene)
 129        {
 130            addedScenes.Add(scene.sceneData.id);
 131            deployedScenes.Add(scene.sceneData.id);
 132        }
 133
 134        void IDeployedSceneListener.OnSceneRemoved(ISceneCardView scene)
 135        {
 136            removedScenes.Add(scene.sceneData.id);
 137            deployedScenes.Remove(scene.sceneData.id);
 138        }
 139
 140        void IProjectSceneListener.OnSetScenes(Dictionary<string, ISceneCardView> scenes)
 141        {
 142            foreach (var view in scenes.Values)
 143            {
 144                setScenes.Add(view.sceneData.id);
 145                projectScenes.Add(view.sceneData.id);
 146            }
 147        }
 148
 149        void IProjectSceneListener.OnSceneAdded(ISceneCardView scene)
 150        {
 151            addedScenes.Add(scene.sceneData.id);
 152            projectScenes.Add(scene.sceneData.id);
 153        }
 154
 155        void IProjectSceneListener.OnSceneRemoved(ISceneCardView scene)
 156        {
 157            removedScenes.Add(scene.sceneData.id);
 158            projectScenes.Remove(scene.sceneData.id);
 159        }
 160    }
 161}