Summary

Class:Xrm.Oss.XTL.Interpreter.DataRetriever
Assembly:Xrm.Oss.XTL.Templating
File(s):D:\Entwicklung\Xrm-Templating-Language\src\lib\Xrm.Oss.XTL.Interpreter\DataRetriever.cs
Covered lines:22
Uncovered lines:0
Coverable lines:22
Total lines:43
Line coverage:100% (22 of 22)
Covered branches:11
Total branches:12
Branch coverage:91.6% (11 of 12)

Metrics

MethodCyclomatic complexity NPath complexity Sequence coverage Branch coverage Crap Score
ResolveTokenValue(...)964100%92.31%90

File(s)

D:\Entwicklung\Xrm-Templating-Language\src\lib\Xrm.Oss.XTL.Interpreter\DataRetriever.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Text;
 4using Microsoft.Xrm.Sdk;
 5using Microsoft.Xrm.Sdk.Query;
 6
 7namespace Xrm.Oss.XTL.Interpreter
 8{
 9    public static class DataRetriever
 10    {
 11        public static ValueExpression ResolveTokenValue(string token, Entity primary, IOrganizationService service, Conf
 10512        {
 10513            var path = new Queue<string>(token.Split('.'));
 10514            var currentEntity = primary;
 10515            ValueExpression value = null;
 16
 17            do
 11318            {
 11319                var currentField = path.Dequeue();
 11320                var currentObject = currentEntity.GetAttributeValue<object>(currentField);
 21
 11322                if (currentObject == null)
 1323                {
 1324                    return new ValueExpression(null);
 25                }
 26
 10027                var entityReference = currentObject as EntityReference;
 10028                var nextField = path.Count > 0 ? path.Peek() : null;
 29
 10030                if (entityReference == null || (entityReference != null && nextField == null))
 9231                {
 9232                    value = new ValueExpression(PropertyStringifier.Stringify(currentField, currentEntity, service, conf
 9233                }
 34                else
 835                {
 836                    currentEntity = service.Retrieve(entityReference.LogicalName, entityReference.Id, new ColumnSet(next
 837                }
 20038            } while (path.Count > 0);
 39
 9240            return value;
 10541        }
 42    }
 43}