< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Listener_Mock()0%110100%
Clear()0%110100%
OnSetScenes(...)0%220100%
OnSceneAdded(...)0%110100%
OnSceneRemoved(...)0%110100%
OnSetScenes(...)0%220100%
OnSceneAdded(...)0%110100%
OnSceneRemoved(...)0%2100%

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";
 17            var prefab = AssetDatabase.LoadAssetAtPath<SceneCardView>(prefabAssetPath);
 18
 19            scenesViewController = new ScenesViewController(prefab);
 20            listenerMock = new Listener_Mock();
 21
 22            scenesViewController.OnDeployedSceneRemoved += ((IDeployedSceneListener)listenerMock).OnSceneRemoved;
 23            scenesViewController.OnDeployedSceneAdded += ((IDeployedSceneListener)listenerMock).OnSceneAdded;
 24            scenesViewController.OnDeployedScenesSet += ((IDeployedSceneListener)listenerMock).OnSetScenes;
 25
 26            scenesViewController.OnProjectSceneRemoved += ((IProjectSceneListener)listenerMock).OnSceneRemoved;
 27            scenesViewController.OnProjectSceneAdded += ((IProjectSceneListener)listenerMock).OnSceneAdded;
 28            scenesViewController.OnProjectScenesSet += ((IProjectSceneListener)listenerMock).OnSetScenes;
 29        }
 30
 31        [TearDown]
 32        public void TearDown() { scenesViewController.Dispose(); }
 33
 34        [Test]
 35        public void CallListenerEventsCorrectly()
 36        {
 37            scenesViewController.SetScenes(new ISceneData[] { new SceneData() { id = "1", isDeployed = true } });
 38
 39            Assert.AreEqual(1, listenerMock.deployedScenes.Count);
 40            Assert.AreEqual(1, listenerMock.setScenes.Count);
 41            Assert.AreEqual(0, listenerMock.addedScenes.Count);
 42            Assert.AreEqual(0, listenerMock.removedScenes.Count);
 43            Assert.AreEqual(0, listenerMock.projectScenes.Count);
 44
 45            listenerMock.Clear();
 46
 47            scenesViewController.SetScenes(new ISceneData[]
 48            {
 49                new SceneData() { id = "1", isDeployed = true },
 50                new SceneData() { id = "2", isDeployed = true }
 51            });
 52
 53            Assert.AreEqual(2, listenerMock.deployedScenes.Count);
 54            Assert.AreEqual(0, listenerMock.setScenes.Count);
 55            Assert.AreEqual(1, listenerMock.addedScenes.Count);
 56            Assert.AreEqual(0, listenerMock.removedScenes.Count);
 57            Assert.AreEqual(0, listenerMock.projectScenes.Count);
 58
 59            listenerMock.Clear();
 60
 61            scenesViewController.SetScenes(new ISceneData[]
 62            {
 63                new SceneData() { id = "1", isDeployed = true },
 64                new SceneData() { id = "2", isDeployed = false }
 65            });
 66
 67            Assert.AreEqual(1, listenerMock.deployedScenes.Count);
 68            Assert.AreEqual(1, listenerMock.setScenes.Count);
 69            Assert.AreEqual(0, listenerMock.addedScenes.Count);
 70            Assert.AreEqual(1, listenerMock.removedScenes.Count);
 71            Assert.AreEqual(1, listenerMock.projectScenes.Count);
 72
 73            listenerMock.Clear();
 74
 75            scenesViewController.SetScenes(new ISceneData[]
 76            {
 77                new SceneData() { id = "1", isDeployed = true },
 78                new SceneData() { id = "2", isDeployed = false }
 79            });
 80
 81            Assert.AreEqual(1, listenerMock.deployedScenes.Count);
 82            Assert.AreEqual(0, listenerMock.setScenes.Count);
 83            Assert.AreEqual(0, listenerMock.addedScenes.Count);
 84            Assert.AreEqual(0, listenerMock.removedScenes.Count);
 85            Assert.AreEqual(1, listenerMock.projectScenes.Count);
 86
 87            listenerMock.Clear();
 88
 89            scenesViewController.SetScenes(new ISceneData[]
 90            {
 91                new SceneData() { id = "1", isDeployed = false },
 92                new SceneData() { id = "2", isDeployed = false }
 93            });
 94
 95            Assert.AreEqual(0, listenerMock.deployedScenes.Count);
 96            Assert.AreEqual(0, listenerMock.setScenes.Count);
 97            Assert.AreEqual(1, listenerMock.addedScenes.Count);
 98            Assert.AreEqual(1, listenerMock.removedScenes.Count);
 99            Assert.AreEqual(2, listenerMock.projectScenes.Count);
 100        }
 101    }
 102
 103    class Listener_Mock : IDeployedSceneListener, IProjectSceneListener
 104    {
 1105        public List<string> setScenes = new List<string>();
 1106        public List<string> addedScenes = new List<string>();
 1107        public List<string> removedScenes = new List<string>();
 108
 1109        public List<string> deployedScenes = new List<string>();
 1110        public List<string> projectScenes = new List<string>();
 111
 112        public void Clear()
 113        {
 4114            setScenes.Clear();
 4115            addedScenes.Clear();
 4116            removedScenes.Clear();
 4117        }
 118
 119        void IDeployedSceneListener.OnSetScenes(Dictionary<string, ISceneCardView> scenes)
 120        {
 4121            foreach (var view in scenes.Values)
 122            {
 1123                setScenes.Add(view.sceneData.id);
 1124                deployedScenes.Add(view.sceneData.id);
 125            }
 1126        }
 127
 128        void IDeployedSceneListener.OnSceneAdded(ISceneCardView scene)
 129        {
 1130            addedScenes.Add(scene.sceneData.id);
 1131            deployedScenes.Add(scene.sceneData.id);
 1132        }
 133
 134        void IDeployedSceneListener.OnSceneRemoved(ISceneCardView scene)
 135        {
 2136            removedScenes.Add(scene.sceneData.id);
 2137            deployedScenes.Remove(scene.sceneData.id);
 2138        }
 139
 140        void IProjectSceneListener.OnSetScenes(Dictionary<string, ISceneCardView> scenes)
 141        {
 8142            foreach (var view in scenes.Values)
 143            {
 1144                setScenes.Add(view.sceneData.id);
 1145                projectScenes.Add(view.sceneData.id);
 146            }
 3147        }
 148
 149        void IProjectSceneListener.OnSceneAdded(ISceneCardView scene)
 150        {
 1151            addedScenes.Add(scene.sceneData.id);
 1152            projectScenes.Add(scene.sceneData.id);
 1153        }
 154
 155        void IProjectSceneListener.OnSceneRemoved(ISceneCardView scene)
 156        {
 0157            removedScenes.Add(scene.sceneData.id);
 0158            projectScenes.Remove(scene.sceneData.id);
 0159        }
 160    }
 161}