< Summary

Class:Tests.QuestsTrackerHUD.QuestsTrackerHUDControllerShould
Assembly:QuestsTrackerHUDTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/QuestsTrackerHUD/Tests/QuestsTrackerHUDControllerShould.cs
Covered lines:48
Uncovered lines:0
Coverable lines:48
Total lines:138
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%
InitializeProperly()0%110100%
CallViewWhenQuestProgressed()0%110100%
CallViewWhenPinnedQuestAdded()0%110100%
CallViewWhenQuestRemoved()0%110100%
CallViewWhenPinnedQuestsSet()0%110100%
CallViewWhenQuestsSet()0%110100%
CallViewWhenRewardObtained()0%110100%
TearDown()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/QuestsTrackerHUD/Tests/QuestsTrackerHUDControllerShould.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using DCL;
 3using DCL.Huds.QuestsTracker;
 4using DCL.QuestsController;
 5using NSubstitute;
 6using NSubstitute.Extensions;
 7using NUnit.Framework;
 8using System;
 9
 10namespace Tests.QuestsTrackerHUD
 11{
 12    public class QuestsTrackerHUDControllerShould
 13    {
 14        private const string MOCK_QUEST_ID = "quest0";
 15        private const string MOCK_SECTION_ID = "section0";
 16        private const string MOCK_TASK_ID = "task0";
 17        private const string MOCK_REWARD_ID = "reward0";
 18
 19        private IQuestsController questsController;
 20        private QuestsTrackerHUDController hudController;
 21        private IQuestsTrackerHUDView hudView;
 22
 23        [SetUp]
 24        public void SetUp()
 25        {
 726            QuestModel questMock = new QuestModel { id = MOCK_QUEST_ID, status = QuestsLiterals.Status.ON_GOING };
 727            QuestSection sectionMock = new QuestSection { id = MOCK_SECTION_ID };
 728            QuestTask taskMock = new QuestTask { id = MOCK_TASK_ID };
 729            QuestReward rewardMock = new QuestReward { id = MOCK_REWARD_ID };
 730            sectionMock.tasks = new [] { taskMock };
 731            questMock.sections = new [] { sectionMock };
 732            questMock.rewards = new [] { rewardMock };
 733            DataStore.i.Quests.quests.Set(new []
 34            {
 35                (questMock.id, questMock)
 36            });
 37
 738            questsController = Substitute.For<IQuestsController>();
 739            hudView = Substitute.For<IQuestsTrackerHUDView>();
 740            hudController = Substitute.ForPartsOf<QuestsTrackerHUDController>();
 1441            hudController.Configure().CreateView().Returns(info => hudView);
 742        }
 43
 44        [Test]
 45        public void InitializeProperly()
 46        {
 147            hudController.Initialize(questsController);
 48
 149            Assert.AreEqual(questsController, hudController.questsController);
 150            Assert.AreEqual(hudView, hudController.view);
 151        }
 52
 53        [Test]
 54        public void CallViewWhenQuestProgressed()
 55        {
 156            hudController.Initialize(questsController);
 157            questsController.OnQuestUpdated += Raise.Event<QuestUpdated>(MOCK_QUEST_ID, true);
 58
 159            hudView.Received().UpdateQuest(MOCK_QUEST_ID, true);
 160        }
 61
 62        [Test]
 63        public void CallViewWhenPinnedQuestAdded()
 64        {
 165            hudController.Initialize(questsController);
 166            DataStore.i.Quests.pinnedQuests.Add(MOCK_QUEST_ID);
 67
 168            hudView.Received().PinQuest(MOCK_QUEST_ID);
 169        }
 70
 71        [Test]
 72        public void CallViewWhenQuestRemoved()
 73        {
 174            hudController.Initialize(questsController);
 175            DataStore.i.Quests.quests.Remove(MOCK_QUEST_ID);
 76
 177            hudView.Received().RemoveEntry(MOCK_QUEST_ID);
 178        }
 79
 80        [Test]
 81        public void CallViewWhenPinnedQuestsSet()
 82        {
 183            DataStore.i.Quests.quests.Set(new []
 84            {
 85                ("newQuest1", new QuestModel { id = "newQuest1" }),
 86                ("newQuest2", new QuestModel { id = "newQuest2" })
 87            });
 88
 189            hudController.Initialize(questsController);
 190            DataStore.i.Quests.pinnedQuests.Set(new []
 91            {
 92                "newQuest1", "newQuest2"
 93            });
 194            hudView.Received().ClearEntries();
 195            hudView.Received().PinQuest("newQuest1");
 196            hudView.Received().PinQuest("newQuest2");
 197        }
 98
 99        [Test]
 100        public void CallViewWhenQuestsSet()
 101        {
 1102            DataStore.i.Quests.pinnedQuests.Set(new []
 103            {
 104                "newQuest1", "newQuest2"
 105            });
 1106            hudController.Initialize(questsController);
 1107            DataStore.i.Quests.quests.Set(new List<(string, QuestModel)>
 108            {
 109                ("newQuest1", new QuestModel
 110                {
 111                    id = "newQuest1"
 112                }),
 113                ("newQuest2", new QuestModel
 114                {
 115                    id = "newQuest2"
 116                }),
 117            });
 118
 1119            hudView.Received().ClearEntries();
 1120            hudView.Received().PinQuest("newQuest1");
 1121            hudView.Received().PinQuest("newQuest2");
 1122        }
 123
 124        [Test]
 125        public void CallViewWhenRewardObtained()
 126        {
 1127            hudController.Initialize(questsController);
 128
 1129            questsController.OnRewardObtained += Raise.Event<RewardObtained>(MOCK_QUEST_ID, MOCK_REWARD_ID);
 130
 1131            hudView.Received().AddReward(MOCK_QUEST_ID, DataStore.i.Quests.quests[MOCK_QUEST_ID].rewards[0]);
 1132        }
 133
 134        [TearDown]
 14135        public void TearDown() { DataStore.Clear(); }
 136    }
 137
 138}