< Summary

Class:DCLServices.MapRendererV2.CommonBehavior.MapMarkerPoolableBehavior[T]
Assembly:MapRendererV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/CommonBehavior/MapMarkerPoolableBehavior.cs
Covered lines:8
Uncovered lines:11
Coverable lines:19
Total lines:52
Line coverage:42.1% (8 of 19)
Covered branches:0
Total branches:0
Covered methods:6
Total methods:10
Method coverage:60% (6 of 10)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
MapMarkerPoolableBehavior(...)0%110100%
SetCurrentPosition(...)0%6200%
OnBecameVisible()0%2100%
OnBecameInvisible()0%2.262060%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/CommonBehavior/MapMarkerPoolableBehavior.cs

#LineLine coverage
 1using MainScripts.DCL.Helpers.Utils;
 2using UnityEngine;
 3using UnityEngine.Pool;
 4
 5namespace DCLServices.MapRendererV2.CommonBehavior
 6{
 7    /// <summary>
 8    /// Represents Poolable behaviour of the map object
 9    /// </summary>
 10    internal struct MapMarkerPoolableBehavior<T> where T : MonoBehaviour
 11    {
 12        internal readonly IUnityObjectPool<T> objectsPool;
 13
 576014        internal T instance { get; private set; }
 15
 576016        internal bool isVisible { get; private set; }
 17
 018        internal Vector3 currentPosition { get; private set; }
 19
 576020        internal MapMarkerPoolableBehavior(IUnityObjectPool<T> objectsPool) : this()
 21        {
 576022            this.objectsPool = objectsPool;
 576023        }
 24
 25        public void SetCurrentPosition(Vector3 pos)
 26        {
 027            currentPosition = pos;
 28
 029            if (isVisible)
 030                instance.transform.localPosition = pos;
 031        }
 32
 33        public T OnBecameVisible()
 34        {
 035            instance = objectsPool.Get();
 036            instance.transform.localPosition = currentPosition;
 037            isVisible = true;
 038            return instance;
 39        }
 40
 41        public void OnBecameInvisible()
 42        {
 576043            if (instance)
 44            {
 045                objectsPool.Release(instance);
 046                instance = null;
 47            }
 48
 576049            isVisible = false;
 576050        }
 51    }
 52}