< Summary

Class:FeatureFlag
Assembly:FeatureFlagData
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/FeatureFlags/Data/FeatureFlag.cs
Covered lines:8
Uncovered lines:6
Coverable lines:14
Total lines:55
Line coverage:57.1% (8 of 14)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FeatureFlag()0%110100%
IsFeatureEnabled(...)0%5.395075%
ToString()0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/FeatureFlags/Data/FeatureFlag.cs

#LineLine coverage
 1using System.Collections.Generic;
 2
 3public class FeatureFlag
 4{
 1915    public readonly Dictionary<string, bool> flags  = new Dictionary<string, bool>();
 1916    public readonly Dictionary<string, FeatureFlagVariant> variants  = new Dictionary<string, FeatureFlagVariant>();
 7
 8    /// <summary>
 9    /// Will check if featureName contains variant to be checked.
 10    /// Supported formats: featureName, featureName:variantName
 11    /// </summary>
 12    /// <param name="featureNameLong"></param>
 13    /// <returns></returns>
 14    public bool IsFeatureEnabled(string featureNameLong)
 15    {
 40316        string[] splitFeatureName = featureNameLong.Split(':');
 40317        string featureName = splitFeatureName[0];
 18
 40319        if (splitFeatureName.Length > 1 && variants.TryGetValue(featureName, out var variant))
 20        {
 021            string variantName = splitFeatureName[splitFeatureName.Length - 1];
 022            return variant.enabled && variant.name == variantName;
 23        }
 24
 40325        if (flags.ContainsKey(featureName))
 4526            return flags[featureName];
 27
 35828        return false;
 29    }
 30
 31    public string ToString()
 32    {
 033        string result = "";
 34
 035        foreach ( var flag in flags )
 36        {
 037            result += $"{flag.Key}: {flag.Value}\n";
 38        }
 39
 040        return result;
 41    }
 42}
 43
 44public class FeatureFlagVariant
 45{
 46    public string name;
 47    public bool enabled;
 48    public FeatureFlagVariantPayload payload;
 49}
 50
 51public class FeatureFlagVariantPayload
 52{
 53    public string type;
 54    public string value;
 55}