< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetUp()0%110100%
BeEmptyOnInitialize()0%110100%
ReactToRequestAddOrUpdateQuest()0%110100%
ReactToRequestAddOrUpdateQuest_NoRepeat()0%110100%
AddOrUpdateQuestProperly_NotExistentQuest()0%110100%
AddOrUpdateQuestProperly_AddQuest()0%110100%
AddOrUpdateQuestProperly_UpdateQuest()0%110100%
AddOrUpdateQuestCompletedProperly()0%110100%
RemoveQuestProperly_QuestEntries()0%110100%
RemoveQuestProperly_QuestRequest()0%110100%
ShowPopup_NoExistentQuest()0%110100%
ShowPopup()0%110100%
OrderQuests()0%330100%
TearDown()0%110100%

File(s)

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

#LineLine coverage
 1using System.Collections;
 2using DCL;
 3using DCL.Huds.QuestsPanel;
 4using NUnit.Framework;
 5using UnityEngine;
 6using UnityEngine.TestTools;
 7
 8namespace Tests.QuestsPanelHUD
 9{
 10    public class QuestsPanelHUDViewShould
 11    {
 12        private const string MOCK_QUEST_ID = "quest0";
 13        private const string MOCK_SECTION_ID = "section0";
 14        private const string MOCK_TASK_ID = "task0";
 15
 16        private QuestsPanelHUDView hudView;
 17
 18        [SetUp]
 19        public void SetUp()
 20        {
 1221            QuestModel questMock = new QuestModel
 22            {
 23                id = MOCK_QUEST_ID,
 24                name = "name",
 25                description = "description",
 26            };
 1227            QuestSection sectionMock = new QuestSection { id = MOCK_SECTION_ID };
 1228            QuestTask taskMock = new QuestTask
 29            {
 30                id = MOCK_TASK_ID,
 31                type = "single",
 32                payload = JsonUtility.ToJson(new TaskPayload_Single { isDone = false })
 33            };
 1234            sectionMock.tasks = new [] { taskMock };
 1235            questMock.sections = new [] { sectionMock };
 1236            DataStore.i.Quests.quests.Set(new [] { (questMock.id, questMock) });
 37
 1238            QuestsPanelHUDView.ENTRIES_PER_FRAME = 1;
 1239            hudView = Object.Instantiate(Resources.Load<GameObject>("QuestsPanelHUD")).GetComponent<QuestsPanelHUDView>(
 1240        }
 41
 42        [Test]
 43        public void BeEmptyOnInitialize()
 44        {
 145            Assert.AreEqual(0, hudView.questEntries.Count);
 146            Assert.AreEqual(0, hudView.questsToBeAdded.Count);
 147            Assert.IsFalse(hudView.questPopup.gameObject.activeSelf);
 148        }
 49
 50        [Test]
 51        public void ReactToRequestAddOrUpdateQuest()
 52        {
 153            hudView.RequestAddOrUpdateQuest(MOCK_QUEST_ID);
 54
 155            Assert.AreEqual(1, hudView.questsToBeAdded.Count);
 156        }
 57
 58        [Test]
 59        public void ReactToRequestAddOrUpdateQuest_NoRepeat()
 60        {
 161            hudView.RequestAddOrUpdateQuest(MOCK_QUEST_ID);
 162            hudView.RequestAddOrUpdateQuest(MOCK_QUEST_ID);
 163            Assert.AreEqual(1, hudView.questsToBeAdded.Count);
 164        }
 65
 66        [Test]
 67        public void AddOrUpdateQuestProperly_NotExistentQuest()
 68        {
 169            hudView.AddOrUpdateQuest("NoQuest");
 170            LogAssert.Expect(LogType.Error, $"Couldn't find quest with ID NoQuest in DataStore");
 171            Assert.AreEqual(0, hudView.questEntries.Count);
 172        }
 73
 74        [Test]
 75        public void AddOrUpdateQuestProperly_AddQuest()
 76        {
 177            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 178            Assert.AreEqual(1, hudView.questEntries.Count);
 179            Assert.IsTrue(hudView.questEntries.ContainsKey(MOCK_QUEST_ID));
 180            Assert.AreEqual("name", hudView.questEntries[MOCK_QUEST_ID].questName.text);
 181            Assert.AreEqual("description", hudView.questEntries[MOCK_QUEST_ID].description.text);
 182            Assert.IsTrue(hudView.questEntries[MOCK_QUEST_ID].progressInTitle.gameObject.activeSelf);
 183            Assert.IsFalse(hudView.questEntries[MOCK_QUEST_ID].completedProgressInTitle.gameObject.activeSelf);
 184            Assert.IsFalse(hudView.questEntries[MOCK_QUEST_ID].completedMarkInTitle.gameObject.activeSelf);
 185            Assert.AreEqual(0f, hudView.questEntries[MOCK_QUEST_ID].progressInTitle.transform.localScale.x);
 186        }
 87
 88        [Test]
 89        public void AddOrUpdateQuestProperly_UpdateQuest()
 90        {
 191            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 192            DataStore.i.Quests.quests[MOCK_QUEST_ID].name = "newName";
 193            DataStore.i.Quests.quests[MOCK_QUEST_ID].description = "newDescription";
 194            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].progress = 0.8f;
 95
 196            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 97
 198            Assert.AreEqual(1, hudView.questEntries.Count);
 199            Assert.IsTrue(hudView.questEntries.ContainsKey(MOCK_QUEST_ID));
 1100            Assert.AreEqual("newName", hudView.questEntries[MOCK_QUEST_ID].questName.text);
 1101            Assert.AreEqual("newDescription", hudView.questEntries[MOCK_QUEST_ID].description.text);
 1102            Assert.IsTrue(hudView.questEntries[MOCK_QUEST_ID].progressInTitle.gameObject.activeSelf);
 1103            Assert.IsFalse(hudView.questEntries[MOCK_QUEST_ID].completedProgressInTitle.gameObject.activeSelf);
 1104            Assert.IsFalse(hudView.questEntries[MOCK_QUEST_ID].completedMarkInTitle.gameObject.activeSelf);
 1105            Assert.AreEqual(0.8f, hudView.questEntries[MOCK_QUEST_ID].progressInTitle.transform.localScale.x);
 1106        }
 107
 108        [Test]
 109        public void AddOrUpdateQuestCompletedProperly()
 110        {
 1111            DataStore.i.Quests.quests[MOCK_QUEST_ID].name = "newName";
 1112            DataStore.i.Quests.quests[MOCK_QUEST_ID].description = "newDescription";
 1113            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].tasks[0].progress = 1f;
 1114            DataStore.i.Quests.quests[MOCK_QUEST_ID].sections[0].progress = 1f;
 1115            DataStore.i.Quests.quests[MOCK_QUEST_ID].status = QuestsLiterals.Status.COMPLETED;
 116
 1117            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 118
 1119            Assert.AreEqual(1, hudView.questEntries.Count);
 1120            Assert.IsTrue(hudView.questEntries.ContainsKey(MOCK_QUEST_ID));
 1121            Assert.AreEqual("newName", hudView.questEntries[MOCK_QUEST_ID].questName.text);
 1122            Assert.AreEqual("newDescription", hudView.questEntries[MOCK_QUEST_ID].description.text);
 1123            Assert.IsTrue(hudView.questEntries[MOCK_QUEST_ID].completedProgressInTitle.gameObject.activeSelf);
 1124            Assert.IsTrue(hudView.questEntries[MOCK_QUEST_ID].completedMarkInTitle.gameObject.activeSelf);
 1125        }
 126
 127        [Test]
 128        public void RemoveQuestProperly_QuestEntries()
 129        {
 1130            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 131
 1132            hudView.RemoveQuest(MOCK_QUEST_ID);
 1133            Assert.AreEqual(0, hudView.questEntries.Count);
 1134        }
 135
 136        [Test]
 137        public void RemoveQuestProperly_QuestRequest()
 138        {
 1139            hudView.RequestAddOrUpdateQuest(MOCK_QUEST_ID);
 140
 1141            hudView.RemoveQuest(MOCK_QUEST_ID);
 1142            Assert.AreEqual(0, hudView.questsToBeAdded.Count);
 1143        }
 144
 145        [Test]
 146        public void ShowPopup_NoExistentQuest()
 147        {
 1148            hudView.ShowQuestPopup("NoQuest");
 149
 1150            Assert.IsFalse(hudView.questPopup.gameObject.activeSelf);
 1151        }
 152
 153        [Test]
 154        public void ShowPopup()
 155        {
 1156            hudView.AddOrUpdateQuest(MOCK_QUEST_ID);
 1157            hudView.ShowQuestPopup(MOCK_QUEST_ID);
 158
 1159            Assert.IsTrue(hudView.questPopup.gameObject.activeSelf);
 1160        }
 161
 162        [UnityTest]
 163        public IEnumerator OrderQuests()
 164        {
 1165            DataStore.i.Quests.quests.Add("0", new QuestModel { id = "0", sections = new [] { new QuestSection { id = "0
 1166            DataStore.i.Quests.quests.Add("1", new QuestModel { id = "1", sections = new [] { new QuestSection { id = "1
 1167            DataStore.i.Quests.quests.Add("2", new QuestModel { id = "2", sections = new [] { new QuestSection { id = "2
 1168            DataStore.i.Quests.quests.Add("3", new QuestModel { id = "3", sections = new [] { new QuestSection { id = "3
 169            /* Order should be
 170             * Available
 171             * 0
 172             * 1
 173             * 3
 174             *
 175             * Completed
 176             * 2
 177             */
 178
 1179            hudView.AddOrUpdateQuest("0");
 1180            hudView.AddOrUpdateQuest("1");
 1181            hudView.AddOrUpdateQuest("2");
 1182            hudView.AddOrUpdateQuest("3");
 183
 1184            yield return null;
 185
 1186            Assert.AreEqual(0, hudView.questEntries["0"].transform.GetSiblingIndex());
 1187            Assert.AreEqual(1, hudView.questEntries["1"].transform.GetSiblingIndex());
 1188            Assert.AreEqual(2, hudView.questEntries["3"].transform.GetSiblingIndex());
 1189            Assert.AreEqual(0, hudView.questEntries["2"].transform.GetSiblingIndex());
 1190            Assert.AreEqual(hudView.availableQuestsContainer, hudView.questEntries["0"].transform.parent);
 1191            Assert.AreEqual(hudView.availableQuestsContainer, hudView.questEntries["1"].transform.parent);
 1192            Assert.AreEqual(hudView.availableQuestsContainer, hudView.questEntries["3"].transform.parent);
 1193            Assert.AreEqual(hudView.completedQuestsContainer, hudView.questEntries["2"].transform.parent);
 1194        }
 195
 196        [TearDown]
 24197        public void TearDown() { Object.Destroy(hudView.gameObject); }
 198    }
 199}