< Summary

Class:BiwSceneMetricsAnalyticsHelper
Assembly:BuilderInWorld
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/BiwSceneMetricsAnalyticsHelper.cs
Covered lines:8
Uncovered lines:16
Coverable lines:24
Total lines:58
Line coverage:33.3% (8 of 24)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
BiwSceneMetricsAnalyticsHelper(...)0%110100%
Dispose()0%110100%
OnMetricsUpdated(...)0%6200%
SendSceneLimitExceededAnalyticsEvent()0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/BiwSceneMetricsAnalyticsHelper.cs

#LineLine coverage
 1using System.Collections;
 2using System.Collections.Generic;
 3using DCL;
 4using DCL.Controllers;
 5using DCL.Models;
 6using UnityEngine;
 7
 8public class BiwSceneMetricsAnalyticsHelper
 9{
 10    private const float MS_BETWEEN_METRICS_EVENT = 2000f;
 111    private string currentExceededLimitTypes = "";
 12
 13    private IParcelScene scene;
 14    private float lastTimeAnalitycsSent = 0;
 115    private SceneMetricsModel lastSceneMetrics = new SceneMetricsModel();
 16
 117    public BiwSceneMetricsAnalyticsHelper(IParcelScene sceneOwner)
 18    {
 119        this.scene = sceneOwner;
 120        scene.metricsCounter.OnMetricsUpdated += OnMetricsUpdated;
 121    }
 22
 23    public void Dispose()
 24    {
 125        scene.metricsCounter.OnMetricsUpdated -= OnMetricsUpdated;
 126    }
 27
 28    private void OnMetricsUpdated(ISceneMetricsCounter obj)
 29    {
 030        if (Time.unscaledTime < lastTimeAnalitycsSent + MS_BETWEEN_METRICS_EVENT / 1000f)
 031            return;
 32
 033        SendSceneLimitExceededAnalyticsEvent();
 034        lastTimeAnalitycsSent = Time.unscaledTime;
 035    }
 36
 37    private void SendSceneLimitExceededAnalyticsEvent()
 38    {
 039        if (scene.metricsCounter.IsInsideTheLimits())
 40        {
 041            currentExceededLimitTypes = "";
 042            return;
 43        }
 44
 045        var metricsModel = scene.metricsCounter.currentCount;
 046        var metricsLimits = scene.metricsCounter.maxCount;
 47
 048        string exceededLimits = BIWAnalytics.GetLimitsPassedArray(metricsModel, metricsLimits);
 49
 050        if (exceededLimits != currentExceededLimitTypes)
 51        {
 052            BIWAnalytics.SceneLimitsExceeded(metricsModel, metricsLimits);
 053            currentExceededLimitTypes = exceededLimits;
 54        }
 55
 056        lastSceneMetrics = metricsModel;
 057    }
 58}