< Summary

Class:BIWActionsShould
Assembly:BuilderInWorldTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Tests/BIWActionsShould.cs
Covered lines:100
Uncovered lines:0
Coverable lines:100
Total lines:192
Line coverage:100% (100 of 100)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetUp()0%330100%
UndoRedoMoveAction()0%110100%
UndoRedoRotateAction()0%110100%
UndoRedoScaleAction()0%110100%
UndoRedoCreateDeleteActions()0%110100%
UndoRedoChangeFloorAction()0%770100%
TearDown()0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Tests/BIWActionsShould.cs

#LineLine coverage
 1using DCL;
 2using DCL.Controllers;
 3using DCL.Helpers;
 4using NUnit.Framework;
 5using System.Collections;
 6using System.Collections.Generic;
 7using Tests;
 8using UnityEngine;
 9using UnityEngine.TestTools;
 10
 11public class BIWActionsShould : IntegrationTestSuite_Legacy
 12{
 13    private const string ENTITY_ID = "1";
 14    private BuilderInWorldController controller;
 15    private ActionController actionController;
 16    private BuilderInWorldEntityHandler entityHandler;
 17    private BIWFloorHandler biwFloorHandler;
 18    private BIWCreatorController biwCreatorController;
 19
 20    protected override IEnumerator SetUp()
 21    {
 522        yield return base.SetUp();
 523        controller = Resources.FindObjectsOfTypeAll<BuilderInWorldController>()[0];
 524        actionController = controller.actionController;
 525        entityHandler = controller.builderInWorldEntityHandler;
 526        biwFloorHandler = controller.biwFloorHandler;
 527        biwCreatorController = controller.biwCreatorController;
 528        entityHandler.Init();
 29
 530        TestHelpers.CreateSceneEntity(scene, ENTITY_ID);
 531        entityHandler.EnterEditMode(scene);
 532    }
 33
 34    [Test]
 35    public void UndoRedoMoveAction()
 36    {
 137        BuildInWorldCompleteAction buildModeAction = new BuildInWorldCompleteAction();
 38
 139        Vector3 oldPosition = scene.entities[ENTITY_ID].gameObject.transform.position;
 140        Vector3 newPosition = new Vector3(5, 5, 5);
 41
 142        BuilderInWorldEntityAction entityAction = new BuilderInWorldEntityAction(ENTITY_ID);
 143        entityAction.oldValue = oldPosition;
 144        entityAction.newValue = newPosition;
 45
 146        buildModeAction.CreateActionType(entityAction, BuildInWorldCompleteAction.ActionType.MOVE);
 47
 148        scene.entities[ENTITY_ID].gameObject.transform.position = newPosition;
 149        actionController.AddAction(buildModeAction);
 50
 151        actionController.TryToUndoAction();
 152        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.position == oldPosition);
 53
 154        actionController.TryToRedoAction();
 155        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.position == newPosition);
 156    }
 57
 58    [Test]
 59    public void UndoRedoRotateAction()
 60    {
 161        BuildInWorldCompleteAction buildModeAction = new BuildInWorldCompleteAction();
 62
 163        Vector3 oldRotation = scene.entities[ENTITY_ID].gameObject.transform.rotation.eulerAngles;
 164        Vector3 newRotation = new Vector3(5, 5, 5);
 65
 166        BuilderInWorldEntityAction entityAction = new BuilderInWorldEntityAction(ENTITY_ID);
 167        entityAction.oldValue = oldRotation;
 168        entityAction.newValue = newRotation;
 69
 170        buildModeAction.CreateActionType(entityAction, BuildInWorldCompleteAction.ActionType.ROTATE);
 71
 172        scene.entities[ENTITY_ID].gameObject.transform.rotation = Quaternion.Euler(newRotation);
 173        actionController.AddAction(buildModeAction);
 74
 175        actionController.TryToUndoAction();
 176        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.rotation.eulerAngles == oldRotation);
 77
 178        actionController.TryToRedoAction();
 179        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.rotation.eulerAngles == newRotation);
 180    }
 81
 82    [Test]
 83    public void UndoRedoScaleAction()
 84    {
 185        BuildInWorldCompleteAction buildModeAction = new BuildInWorldCompleteAction();
 86
 187        Vector3 oldScale = scene.entities[ENTITY_ID].gameObject.transform.localScale;
 188        Vector3 newScale = new Vector3(5, 5, 5);
 89
 190        BuilderInWorldEntityAction entityAction = new BuilderInWorldEntityAction(ENTITY_ID);
 191        entityAction.oldValue = oldScale;
 192        entityAction.newValue = newScale;
 93
 194        buildModeAction.CreateActionType(entityAction, BuildInWorldCompleteAction.ActionType.SCALE);
 95
 196        scene.entities[ENTITY_ID].gameObject.transform.localScale = newScale;
 197        actionController.AddAction(buildModeAction);
 98
 199        actionController.TryToUndoAction();
 1100        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.localScale == oldScale);
 101
 1102        actionController.TryToRedoAction();
 1103        Assert.IsTrue(scene.entities[ENTITY_ID].gameObject.transform.localScale == newScale);
 1104    }
 105
 106    [Test]
 107    public void UndoRedoCreateDeleteActions()
 108    {
 1109        actionController.CreateActionEntityCreated(scene.entities[ENTITY_ID]);
 1110        actionController.TryToUndoAction();
 1111        Assert.IsFalse(scene.entities.ContainsKey(ENTITY_ID));
 112
 1113        actionController.TryToRedoAction();
 1114        Assert.IsTrue(scene.entities.ContainsKey(ENTITY_ID));
 115
 1116        DCLBuilderInWorldEntity biwEntity = Utils.GetOrCreateComponent<DCLBuilderInWorldEntity>(scene.entities[ENTITY_ID
 1117        biwEntity.Init(scene.entities[ENTITY_ID], null);
 118
 1119        actionController.CreateActionEntityDeleted(biwEntity);
 1120        actionController.TryToUndoAction();
 1121        Assert.IsTrue(scene.entities.ContainsKey(ENTITY_ID));
 122
 1123        actionController.TryToRedoAction();
 1124        Assert.IsFalse(scene.entities.ContainsKey(ENTITY_ID));
 1125    }
 126
 127    [Test]
 128    public void UndoRedoChangeFloorAction()
 129    {
 1130        BIWCatalogManager.Init();
 131
 1132        BuilderInWorldTestHelper.CreateTestCatalogLocalMultipleFloorObjects();
 133
 1134        CatalogItem oldFloor = DataStore.i.builderInWorld.catalogItemDict.GetValues()[0];
 1135        CatalogItem newFloor = DataStore.i.builderInWorld.catalogItemDict.GetValues()[1];
 1136        BuildInWorldCompleteAction buildModeAction = new BuildInWorldCompleteAction();
 137
 1138        controller.InitGameObjects();
 1139        controller.FindSceneToEdit();
 1140        controller.InitControllers();
 141
 1142        biwCreatorController.EnterEditMode(scene);
 1143        biwFloorHandler.EnterEditMode(scene);
 144
 1145        biwFloorHandler.CreateFloor(oldFloor);
 1146        biwFloorHandler.ChangeFloor(newFloor);
 147
 1148        buildModeAction.CreateChangeFloorAction(oldFloor, newFloor);
 1149        actionController.AddAction(buildModeAction);
 150
 5151        foreach (DCLBuilderInWorldEntity entity in entityHandler.GetAllEntitiesFromCurrentScene())
 152        {
 2153            if (entity.isFloor)
 154            {
 1155                Assert.AreEqual(entity.GetCatalogItemAssociated().id, newFloor.id);
 1156                break;
 157            }
 158        }
 159
 1160        actionController.TryToUndoAction();
 161
 5162        foreach (DCLBuilderInWorldEntity entity in entityHandler.GetAllEntitiesFromCurrentScene())
 163        {
 2164            if (entity.isFloor)
 165            {
 1166                Assert.AreEqual(entity.GetCatalogItemAssociated().id, oldFloor.id);
 167
 1168                break;
 169            }
 170        }
 171
 1172        actionController.TryToRedoAction();
 173
 5174        foreach (DCLBuilderInWorldEntity entity in entityHandler.GetAllEntitiesFromCurrentScene())
 175        {
 2176            if (entity.isFloor)
 177            {
 1178                Assert.AreEqual(entity.GetCatalogItemAssociated().id, newFloor.id);
 1179                break;
 180            }
 181        }
 1182    }
 183
 184    protected override IEnumerator TearDown()
 185    {
 5186        BIWCatalogManager.ClearCatalog();
 5187        BuilderInWorldNFTController.i.ClearNFTs();
 5188        controller.CleanItems();
 5189        actionController.Clear();
 5190        yield return base.TearDown();
 5191    }
 192}