< Summary

Class:DCL.ECSComponents.UIBackgroundHandler
Assembly:DCL.ECSComponents.UIBackground
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/UIBackground/UIBackgroundHandler.cs
Covered lines:21
Uncovered lines:1
Coverable lines:22
Total lines:56
Line coverage:95.4% (21 of 22)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
UIBackgroundHandler(...)0%110100%
OnComponentCreated(...)0%2100%
OnComponentRemoved(...)0%110100%
OnComponentModelUpdated(...)0%660100%
RemoveFromContainer(...)0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/ECSComponents/UIBackground/UIBackgroundHandler.cs

#LineLine coverage
 1using DCL.Controllers;
 2using DCL.ECS7.InternalComponents;
 3using DCL.ECSRuntime;
 4using DCL.Models;
 5using UnityEngine;
 6
 7namespace DCL.ECSComponents
 8{
 9    public class UIBackgroundHandler : IECSComponentHandler<PBUiBackground>
 10    {
 11        private readonly IInternalECSComponent<InternalUiContainer> internalUiContainer;
 12        private readonly int componentId;
 13
 414        public UIBackgroundHandler(IInternalECSComponent<InternalUiContainer> internalUiContainer, int componentId)
 15        {
 416            this.internalUiContainer = internalUiContainer;
 417            this.componentId = componentId;
 418        }
 19
 020        public void OnComponentCreated(IParcelScene scene, IDCLEntity entity) { }
 21
 22        public void OnComponentRemoved(IParcelScene scene, IDCLEntity entity)
 23        {
 124            RemoveFromContainer(scene, entity);
 125        }
 26
 27        public void OnComponentModelUpdated(IParcelScene scene, IDCLEntity entity, PBUiBackground model)
 28        {
 629            if (model.BackgroundColor == null || model.BackgroundColor.A == 0)
 30            {
 231                RemoveFromContainer(scene, entity);
 232            }
 33            else
 34            {
 435                var containerModel = internalUiContainer.GetFor(scene, entity)?.model ?? new InternalUiContainer();
 436                containerModel.components.Add(componentId);
 437                containerModel.rootElement.style.backgroundColor = model.BackgroundColor.ToUnityColor();
 438                internalUiContainer.PutFor(scene, entity, containerModel);
 39            }
 440        }
 41
 42        private void RemoveFromContainer(IParcelScene scene, IDCLEntity entity)
 43        {
 344            var containerData = internalUiContainer.GetFor(scene, entity);
 345            if (containerData != null)
 46            {
 347                var containerModel = containerData.model;
 348                if (containerModel.components.Remove(componentId))
 49                {
 350                    containerModel.rootElement.style.backgroundColor = Color.clear;
 351                    internalUiContainer.PutFor(scene, entity, containerModel);
 52                }
 53            }
 354        }
 55    }
 56}