< Summary

Class:Tests.QuestsPanelHUD.QuestsPanelPopupHUDViewShould
Assembly:QuestsPanelHUDTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/QuestsPanelHUD/Tests/QuestsPanelPopupHUDViewShould.cs
Covered lines:48
Uncovered lines:0
Coverable lines:48
Total lines:111
Line coverage:100% (48 of 48)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetUp()0%110100%
PopulateQuestProperly()0%110100%
PopulateSection()0%110100%
PopulateTask_Single(...)0%550100%
PopulateTask_Numeric(...)0%330100%
TearDown()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/QuestsPanelHUD/Tests/QuestsPanelPopupHUDViewShould.cs

#LineLine coverage
 1using DCL;
 2using DCL.Huds.QuestsPanel;
 3using NUnit.Framework;
 4using UnityEngine;
 5
 6namespace Tests.QuestsPanelHUD
 7{
 8    public class QuestsPanelPopupHUDViewShould
 9    {
 10        private const string MOCK_QUEST_ID = "quest0";
 11        private const string MOCK_SECTION_ID = "section0";
 12        private const string MOCK_TASK_ID = "task0";
 13
 14        private QuestsPanelHUDView hudView;
 15
 16        [SetUp]
 17        public void SetUp()
 18        {
 619            QuestModel questMock = new QuestModel { id = MOCK_QUEST_ID, };
 620            QuestSection sectionMock = new QuestSection { id = MOCK_SECTION_ID, };
 621            QuestTask taskMock = new QuestTask
 22            {
 23                id = MOCK_TASK_ID,
 24                type = "single",
 25                payload = JsonUtility.ToJson(new TaskPayload_Single { isDone = false })
 26            };
 627            sectionMock.tasks = new [] { taskMock };
 628            questMock.sections = new [] { sectionMock };
 629            DataStore.i.Quests.quests.Set(new [] { (questMock.id, questMock) });
 30
 631            QuestsPanelHUDView.ENTRIES_PER_FRAME = 1;
 632            hudView = Object.Instantiate(Resources.Load<GameObject>("QuestsPanelHUD")).GetComponent<QuestsPanelHUDView>(
 633        }
 34
 35        [Test]
 36        public void PopulateQuestProperly()
 37        {
 138            DataStore.i.Quests.quests[MOCK_QUEST_ID].name = "name";
 139            DataStore.i.Quests.quests[MOCK_QUEST_ID].description = "description";
 140            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 41
 142            hudView.ShowQuestPopup(MOCK_QUEST_ID);
 43
 144            Assert.AreEqual("name", hudView.questPopup.questName.text);
 145            Assert.AreEqual("description", hudView.questPopup.description.text);
 146        }
 47
 48        [Test]
 49        public void PopulateSection()
 50        {
 151            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].name = "name";
 152            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 53
 154            hudView.ShowQuestPopup(MOCK_QUEST_ID);
 55
 156            Assert.AreEqual("name", hudView.questPopup.sections[0].sectionName.text);
 157        }
 58
 59        [Test]
 60        [TestCase(false, true)]
 61        [TestCase(true, false)]
 62        public void PopulateTask_Single(bool isDone, bool hasCoordinates)
 63        {
 264            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].name = "name";
 265            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].type = "single";
 266            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].progress = isDone ? 1 : 0;
 267            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].coordinates = hasCoordinates ? "/goto 0,0" : n
 268            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].payload = JsonUtility.ToJson(new TaskPayload_S
 269            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 70
 271            hudView.ShowQuestPopup(MOCK_QUEST_ID);
 72
 273            QuestsPanelTask_Single taskEntry = hudView.questPopup.sections[0].tasksContainer.GetComponentInChildren<Ques
 74
 275            Assert.NotNull(taskEntry);
 276            Assert.AreEqual("name", taskEntry.taskName.text);
 277            Assert.AreEqual(isDone, taskEntry.status.isOn);
 278            Assert.AreEqual(hasCoordinates, taskEntry.jumpInButton.gameObject.activeSelf);
 279        }
 80
 81        [Test]
 82        [TestCase(0, 1, 2, true)]
 83        [TestCase(10, 13, 20, false)]
 84        public void PopulateTask_Numeric(int start, int current, int end, bool hasCoordinates)
 85        {
 286            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].name = "name";
 287            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].type = "numeric";
 288            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].progress = Mathf.InverseLerp(start, end, curre
 289            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].coordinates = hasCoordinates ? "/goto 0,0" : n
 290            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].payload = JsonUtility.ToJson(new TaskPayload_N
 91            {
 92                start = start,
 93                current = current,
 94                end = end
 95            });
 296            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 97
 298            hudView.ShowQuestPopup(MOCK_QUEST_ID);
 99
 2100            QuestsPanelTask_Numeric taskEntry = hudView.questPopup.sections[0].tasksContainer.GetComponentInChildren<Que
 101
 2102            Assert.NotNull(taskEntry);
 2103            Assert.AreEqual("name", taskEntry.taskName.text);
 2104            Assert.AreEqual(Mathf.InverseLerp(start, end, current), taskEntry.ongoingProgress.transform.localScale.x);
 2105            Assert.AreEqual(hasCoordinates, taskEntry.jumpInButton.gameObject.activeSelf);
 2106        }
 107
 108        [TearDown]
 12109        public void TearDown() { Object.Destroy(hudView.gameObject); }
 110    }
 111}