< Summary

Class:ECSSystems.UIInputSenderSystem.ECSUIInputSenderSystem
Assembly:ECS7.System.UIInputSender
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/Systems/UIInputSenderSystem/ECSUIInputSenderSystem.cs
Covered lines:8
Uncovered lines:8
Coverable lines:16
Total lines:49
Line coverage:50% (8 of 16)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ECSUIInputSenderSystem(...)0%110100%
Update()0%8.744033.33%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/ECS7/Systems/UIInputSenderSystem/ECSUIInputSenderSystem.cs

#LineLine coverage
 1using DCL.ECS7.InternalComponents;
 2using DCL.ECSRuntime;
 3
 4namespace ECSSystems.UIInputSenderSystem
 5{
 6    /// <summary>
 7    /// Handles sending unique events from UI Elements to the scene
 8    /// </summary>
 9    public class ECSUIInputSenderSystem
 10    {
 1311        internal IInternalECSComponent<InternalUIInputResults> inputResultComponent { get; }
 012        internal IECSComponentWriter componentWriter { get; }
 13
 214        public ECSUIInputSenderSystem(IInternalECSComponent<InternalUIInputResults> inputResultComponent, IECSComponentW
 15        {
 216            this.inputResultComponent = inputResultComponent;
 217            this.componentWriter = componentWriter;
 218        }
 19
 20        public void Update()
 21        {
 1322            var inputResults = inputResultComponent.GetForAll();
 23
 2624            for (var i = 0; i < inputResults.Count; i++)
 25            {
 026                var model = inputResults[i].value.model;
 027                if (!model.dirty)
 28                    continue;
 29
 030                var scene = inputResults[i].value.scene;
 031                var entity = inputResults[i].value.entity;
 32
 33                // Results are already prepared in its final form by the UI Components themselves
 34
 035                while (model.Results.TryDequeue(out var result))
 36                {
 037                    componentWriter.PutComponent(
 38                        result.Message.GetType(),
 39                        scene.sceneData.sceneNumber,
 40                        entity.entityId,
 41                        result.ComponentId,
 42                        result.Message,
 43                        ECSComponentWriteType.SEND_TO_SCENE | ECSComponentWriteType.WRITE_STATE_LOCALLY
 44                        );
 045                }
 46            }
 1347        }
 48    }
 49}