< Summary

Class:QuestTrackingInfoShould
Assembly:QuestTrackingInfoTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/QuestTrackingInfo/Tests/QuestTrackingInfoShould.cs
Covered lines:37
Uncovered lines:0
Coverable lines:37
Total lines:98
Line coverage:100% (37 of 37)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CreateRuntimeContext()0%110100%
SetUp()0%330100%
InitializeEmpty()0%330100%
AddQuests()0%330100%
RemovePreviousQuest()0%330100%
RemovePreviousQuestOnDestroy()0%440100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/QuestTrackingInfo/Tests/QuestTrackingInfoShould.cs

#LineLine coverage
 1using DCL;
 2using DCL.Controllers;
 3using DCL.Helpers;
 4using DCL.Models;
 5using DCL.QuestsController;
 6using NSubstitute;
 7using System.Collections;
 8using System.Collections.Generic;
 9using Tests;
 10using UnityEngine.TestTools;
 11
 12public class QuestTrackingInfoShould : IntegrationTestSuite
 13{
 14    private ParcelScene scene;
 15    private IQuestsController mockQuestController;
 16
 17    protected override WorldRuntimeContext CreateRuntimeContext()
 18    {
 419        return DCL.Tests.WorldRuntimeContextFactory.CreateWithCustomMocks
 20        (
 21            sceneController: new SceneController(),
 22            state: new WorldState(),
 23            componentFactory: new RuntimeComponentFactory()
 24        );
 25    }
 26
 27    [UnitySetUp]
 28    protected override IEnumerator SetUp()
 29    {
 430        yield return base.SetUp();
 431        scene = Environment.i.world.sceneController.CreateTestScene() as ParcelScene;
 432        mockQuestController = Substitute.For<IQuestsController>();
 433        QuestsController.i = mockQuestController;
 434    }
 35
 36    [UnityTest]
 37    public IEnumerator InitializeEmpty()
 38    {
 139        IDCLEntity entity = TestHelpers.CreateSceneEntity(scene);
 140        QuestTrackingInfo questTrackingInfo = TestHelpers.EntityComponentCreate<QuestTrackingInfo, QuestModel>(scene, en
 141        yield return questTrackingInfo.routine;
 142        mockQuestController.DidNotReceiveWithAnyArgs().UpdateQuestProgress(new QuestModel());
 143        mockQuestController.DidNotReceiveWithAnyArgs().InitializeQuests(new List<QuestModel>());
 144    }
 45
 46    [UnityTest]
 47    public IEnumerator AddQuests()
 48    {
 149        IDCLEntity entity = TestHelpers.CreateSceneEntity(scene);
 150        QuestTrackingInfo questTrackingInfo = TestHelpers.EntityComponentCreate<QuestTrackingInfo, QuestModel>(scene, en
 151        yield return questTrackingInfo.routine;
 152        QuestModel quest = new QuestModel
 53        {
 54            id = "questId"
 55        };
 156        questTrackingInfo.UpdateFromModel(quest);
 157        mockQuestController.Received().UpdateQuestProgress(quest);
 158    }
 59
 60    [UnityTest]
 61    public IEnumerator RemovePreviousQuest()
 62    {
 163        IDCLEntity entity = TestHelpers.CreateSceneEntity(scene);
 164        QuestTrackingInfo questTrackingInfo = TestHelpers.EntityComponentCreate<QuestTrackingInfo, QuestModel>(scene, en
 165        yield return questTrackingInfo.routine;
 166        QuestModel quest = new QuestModel
 67        {
 68            id = "questId"
 69        };
 170        questTrackingInfo.UpdateFromModel(quest);
 71
 172        QuestModel quest2 = new QuestModel
 73        {
 74            id = "questId2"
 75        };
 176        questTrackingInfo.UpdateFromModel(quest2);
 77
 178        mockQuestController.Received().RemoveQuest(quest);
 179    }
 80
 81    [UnityTest]
 82    public IEnumerator RemovePreviousQuestOnDestroy()
 83    {
 184        IDCLEntity entity = TestHelpers.CreateSceneEntity(scene);
 185        QuestTrackingInfo questTrackingInfo = TestHelpers.EntityComponentCreate<QuestTrackingInfo, QuestModel>(scene, en
 186        yield return questTrackingInfo.routine;
 187        QuestModel quest = new QuestModel
 88        {
 89            id = "questId"
 90        };
 191        questTrackingInfo.UpdateFromModel(quest);
 192        TestHelpers.RemoveSceneEntity(scene, entity);
 93
 194        yield return null; // Needed for Unity to call OnDestroy
 95
 196        mockQuestController.Received().RemoveQuest(quest);
 197    }
 98}