forked from zzzprojects/System.Linq.Dynamic.Core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSystem.Linq.Dynamic.Core_LinqProviderExtensions.htm
More file actions
102 lines (102 loc) · 22 KB
/
System.Linq.Dynamic.Core_LinqProviderExtensions.htm
File metadata and controls
102 lines (102 loc) · 22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!DOCTYPE html>
<html data-ng-app="coverageApp">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=1" />
<title>System.Linq.Dynamic.Core.Extensions.LinqProviderExtensions - Coverage Report</title>
<link rel="stylesheet" type="text/css" href="report.css" />
</head><body data-ng-controller="DetailViewCtrl"><div class="container"><div class="containerleft">
<h1>Summary</h1>
<table class="overview table-fixed">
<colgroup>
<col class="column135" />
<col />
</colgroup>
<tbody>
<tr><th>Class:</th><td>System.Linq.Dynamic.Core.Extensions.LinqProviderExtensions</td></tr>
<tr><th>Assembly:</th><td>System.Linq.Dynamic.Core</td></tr>
<tr><th>File(s):</th><td><a href="#CUsersStefDocumentsGitHubSystemLinqDynamicCoresrcSystemLinqDynamicCoreExtensionsLinqProviderExtensionscs" data-ng-click="navigateToHash('#CUsersStefDocumentsGitHubSystemLinqDynamicCoresrcSystemLinqDynamicCoreExtensionsLinqProviderExtensionscs')">C:\Users\Stef\Documents\GitHub\System.Linq.Dynamic.Core\src\System.Linq.Dynamic.Core\Extensions\LinqProviderExtensions.cs</a></td></tr>
<tr><th>Covered lines:</th><td>19</td></tr>
<tr><th>Uncovered lines:</th><td>3</td></tr>
<tr><th>Coverable lines:</th><td>22</td></tr>
<tr><th>Total lines:</th><td>51</td></tr>
<tr><th>Line coverage:</th><td>86.3%</td></tr>
<tr><th>Branch coverage:</th><td>83.3%</td></tr>
</tbody>
</table>
<h1>Metrics</h1>
<table class="overview table-fixed">
<thead><tr><th>Method</th><th>Cyclomatic complexity <a href="https://en.wikipedia.org/wiki/Cyclomatic_complexity" class="info"> </a></th><th>NPath complexity <a href="https://modess.io/npath-complexity-cyclomatic-complexity-explained" class="info"> </a></th><th>Sequence coverage <a href="https://en.wikipedia.org/wiki/Code_coverage" class="info"> </a></th><th>Branch coverage <a href="https://en.wikipedia.org/wiki/Code_coverage" class="info"> </a></th></tr></thead>
<tbody>
<tr><td title="System.Boolean System.Linq.Dynamic.Core.Extensions.LinqProviderExtensions::IsLinqToObjects(System.Linq.IQueryable)">IsLinqToObjects(...)</td><td>1</td><td>0</td><td>100</td><td>100</td></tr>
<tr><td title="System.Boolean System.Linq.Dynamic.Core.Extensions.LinqProviderExtensions::IsProviderEnumerableQuery(System.Linq.IQueryProvider)">IsProviderEnumerableQuery(...)</td><td>4</td><td>8</td><td>82.35</td><td>85.71</td></tr>
</tbody>
</table>
<h1>File(s)</h1>
<h2 id="CUsersStefDocumentsGitHubSystemLinqDynamicCoresrcSystemLinqDynamicCoreExtensionsLinqProviderExtensionscs">C:\Users\Stef\Documents\GitHub\System.Linq.Dynamic.Core\src\System.Linq.Dynamic.Core\Extensions\LinqProviderExtensions.cs</h2>
<table class="lineAnalysis">
<thead><tr><th></th><th>#</th><th>Line</th><th></th><th>Line coverage</th></tr></thead>
<tbody>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line1"></a><code>1</code></td><td></td><td class="lightgray"><code>using System.Reflection;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line2"></a><code>2</code></td><td></td><td class="lightgray"><code>using JetBrains.Annotations;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line3"></a><code>3</code></td><td></td><td class="lightgray"><code>using System.Linq.Dynamic.Core.Validation;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line4"></a><code>4</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line5"></a><code>5</code></td><td></td><td class="lightgray"><code>namespace System.Linq.Dynamic.Core.Extensions</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line6"></a><code>6</code></td><td></td><td class="lightgray"><code>{</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line7"></a><code>7</code></td><td></td><td class="lightgray"><code> internal static class LinqProviderExtensions</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line8"></a><code>8</code></td><td></td><td class="lightgray"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line9"></a><code>9</code></td><td></td><td class="lightgray"><code> /// <summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line10"></a><code>10</code></td><td></td><td class="lightgray"><code> /// Check if the Provider from IQueryable is a LinqToObjects provider.</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line11"></a><code>11</code></td><td></td><td class="lightgray"><code> /// </summary></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line12"></a><code>12</code></td><td></td><td class="lightgray"><code> /// <param name="source">The IQueryable</param></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line13"></a><code>13</code></td><td></td><td class="lightgray"><code> /// <returns>true if provider is LinqToObjects, else false</returns></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line14"></a><code>14</code></td><td></td><td class="lightgray"><code> public static bool IsLinqToObjects([NotNull] this IQueryable source)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '315', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">315</td><td class="rightmargin right"><a id="file0_line15"></a><code>15</code></td><td></td><td class="lightgreen"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '315', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">315</td><td class="rightmargin right"><a id="file0_line16"></a><code>16</code></td><td></td><td class="lightgreen"><code> Check.NotNull(source, nameof(source));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '315', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">315</td><td class="rightmargin right"><a id="file0_line17"></a><code>17</code></td><td></td><td class="lightgreen"><code> Check.NotNull(source.Provider, nameof(source.Provider));</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line18"></a><code>18</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '315', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">315</td><td class="rightmargin right"><a id="file0_line19"></a><code>19</code></td><td></td><td class="lightgreen"><code> return IsProviderEnumerableQuery(source.Provider);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '315', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">315</td><td class="rightmargin right"><a id="file0_line20"></a><code>20</code></td><td></td><td class="lightgreen"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line21"></a><code>21</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line22"></a><code>22</code></td><td></td><td class="lightgray"><code> private static bool IsProviderEnumerableQuery(IQueryProvider provider)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '316', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">316</td><td class="rightmargin right"><a id="file0_line23"></a><code>23</code></td><td></td><td class="lightgreen"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '316', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">316</td><td class="rightmargin right"><a id="file0_line24"></a><code>24</code></td><td></td><td class="lightgreen"><code> Type baseType = provider.GetType().GetTypeInfo().BaseType;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line25"></a><code>25</code></td><td></td><td class="lightgray"><code>#if NET35</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line26"></a><code>26</code></td><td></td><td class="lightgray"><code> bool isLinqToObjects = baseType.FullName.Contains("EnumerableQuery");</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line27"></a><code>27</code></td><td></td><td class="lightgray"><code>#else</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '316', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">316</td><td class="rightmargin right"><a id="file0_line28"></a><code>28</code></td><td></td><td class="lightgreen"><code> bool isLinqToObjects = baseType == typeof(EnumerableQuery);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line29"></a><code>29</code></td><td></td><td class="lightgray"><code>#endif</code></td></tr>
<tr title="2 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '316', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">316</td><td class="rightmargin right"><a id="file0_line30"></a><code>30</code></td><td class="branch100"> </td><td class="lightgreen"><code> if (!isLinqToObjects)</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '34', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">34</td><td class="rightmargin right"><a id="file0_line31"></a><code>31</code></td><td></td><td class="lightgreen"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line32"></a><code>32</code></td><td></td><td class="lightgray"><code> // add support for https://github.com/StefH/QueryInterceptor.Core, version 1.0.1 and up</code></td></tr>
<tr title="2 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '34', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">34</td><td class="rightmargin right"><a id="file0_line33"></a><code>33</code></td><td class="branch100"> </td><td class="lightgreen"><code> if (baseType.Name == "QueryTranslatorProvider")</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '1', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">1</td><td class="rightmargin right"><a id="file0_line34"></a><code>34</code></td><td></td><td class="lightgreen"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line35"></a><code>35</code></td><td></td><td class="lightgray"><code> try</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '1', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">1</td><td class="rightmargin right"><a id="file0_line36"></a><code>36</code></td><td></td><td class="lightgreen"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '1', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">1</td><td class="rightmargin right"><a id="file0_line37"></a><code>37</code></td><td></td><td class="lightgreen"><code> PropertyInfo property = baseType.GetProperty("OriginalProvider");</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '1', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">1</td><td class="rightmargin right"><a id="file0_line38"></a><code>38</code></td><td></td><td class="lightgreen"><code> IQueryProvider originalProvider = property.GetValue(provider, null) as IQueryProvider;</code></td></tr>
<tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '1', 'LVS': 'orange'}}"><td class="orange"> </td><td class="leftmargin rightmargin right">1</td><td class="rightmargin right"><a id="file0_line39"></a><code>39</code></td><td class="branch50"> </td><td class="lightorange"><code> return originalProvider != null && IsProviderEnumerableQuery(originalProvider);</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line40"></a><code>40</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><a id="file0_line41"></a><code>41</code></td><td></td><td class="lightred"><code> catch</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><a id="file0_line42"></a><code>42</code></td><td></td><td class="lightred"><code> {</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '0', 'LVS': 'red'}}"><td class="red"> </td><td class="leftmargin rightmargin right">0</td><td class="rightmargin right"><a id="file0_line43"></a><code>43</code></td><td></td><td class="lightred"><code> return false;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line44"></a><code>44</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line45"></a><code>45</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '33', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">33</td><td class="rightmargin right"><a id="file0_line46"></a><code>46</code></td><td></td><td class="lightgreen"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line47"></a><code>47</code></td><td></td><td class="lightgray"><code></code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '315', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">315</td><td class="rightmargin right"><a id="file0_line48"></a><code>48</code></td><td></td><td class="lightgreen"><code> return isLinqToObjects;</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '316', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">316</td><td class="rightmargin right"><a id="file0_line49"></a><code>49</code></td><td></td><td class="lightgreen"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line50"></a><code>50</code></td><td></td><td class="lightgray"><code> }</code></td></tr>
<tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><a id="file0_line51"></a><code>51</code></td><td></td><td class="lightgray"><code>}</code></td></tr>
</tbody>
</table>
<div class="footer">Generated by: ReportGenerator 2.5.6.0<br />30-4-2017 - 13:27:34<br /><a href="https://github.com/danielpalme/ReportGenerator">GitHub</a> | <a href="http://www.palmmedia.de">www.palmmedia.de</a></div></div>
<div class="containerright">
<div class="containerrightfixed">
<h1>Methods/Properties</h1>
<a class="method" href="#file0_line15" data-ng-click="navigateToHash('#file0_line15')" title="IsLinqToObjects(System.Linq.IQueryable)">IsLinqToObjects(System.Linq.IQueryable)</a><br />
<a class="method" href="#file0_line23" data-ng-click="navigateToHash('#file0_line23')" title="IsProviderEnumerableQuery(System.Linq.IQueryProvider)">IsProviderEnumerableQuery(System.Linq.IQueryProvider)</a><br />
<br/></div>
</div></div>
<script type="text/javascript" src="combined.js"></script>
</body></html>