< 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:16
Uncovered lines:0
Coverable lines:16
Total lines:47
Line coverage:100% (16 of 16)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:3
Method coverage:100% (3 of 3)

Metrics

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

File(s)

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

#LineLine coverage
 1using DCL.ECS7;
 2using DCL.ECS7.InternalComponents;
 3using System.Collections.Generic;
 4
 5namespace ECSSystems.UIInputSenderSystem
 6{
 7    /// <summary>
 8    /// Handles sending unique events from UI Elements to the scene
 9    /// </summary>
 10    public class ECSUIInputSenderSystem
 11    {
 212        internal IInternalECSComponent<InternalUIInputResults> inputResultComponent { get; }
 13        private readonly IReadOnlyDictionary<int, ComponentWriter> componentsWriter;
 14
 315        public ECSUIInputSenderSystem(IInternalECSComponent<InternalUIInputResults> inputResultComponent, IReadOnlyDicti
 16        {
 317            this.inputResultComponent = inputResultComponent;
 318            this.componentsWriter = componentsWriter;
 319        }
 20
 21        public void Update()
 22        {
 223            var inputResults = inputResultComponent.GetForAll();
 24
 825            for (var i = 0; i < inputResults.Count; i++)
 26            {
 227                var model = inputResults[i].value.model;
 28
 229                if (!model.dirty)
 30                    continue;
 31
 132                var scene = inputResults[i].value.scene;
 133                var entity = inputResults[i].value.entity;
 34
 135                if (!componentsWriter.TryGetValue(scene.sceneData.sceneNumber, out var writer))
 36                    continue;
 37
 38                // Results are already prepared in its final form by the UI Components themselves
 39
 540                while (model.Results.TryDequeue(out var result))
 41                {
 442                    writer.Put(entity.entityId, result.ComponentId, result.Message);
 443                }
 44            }
 245        }
 46    }
 47}