<!DOCTYPE html> <html data-ng-app="coverageApp"> <head> <meta charset="utf-8" /> <title>FakeXrmEasy.FakeMessageExecutors.LoseOpportunityRequestExecutor - Coverage Report</title> <link rel="stylesheet" type="text/css" href="report.css" /> </head><body data-ng-controller="DetailViewCtrl"><div class="container"> <h1>Summary</h1> <table class="overview"> <colgroup> <col class="column135" /> <col /> </colgroup> <tbody> <tr><th>Class:</th><td>FakeXrmEasy.FakeMessageExecutors.LoseOpportunityRequestExecutor</td></tr> <tr><th>Assembly:</th><td>FakeXrmEasy</td></tr> <tr><th>File(s):</th><td><a href="#Ccodejordimontana82fakexrmeasyFakeXrmEasySharedFakeMessageExecutorsLoseOpportunityRequestExecutorcs">C:\code\jordimontana82\fake-xrm-easy\FakeXrmEasy.Shared\FakeMessageExecutors\LoseOpportunityRequestExecutor.cs</a></td></tr> <tr><th>Covered lines:</th><td>24</td></tr> <tr><th>Uncovered lines:</th><td>2</td></tr> <tr><th>Coverable lines:</th><td>26</td></tr> <tr><th>Total lines:</th><td>56</td></tr> <tr><th>Line coverage:</th><td>92.3%</td></tr> <tr><th>Branch coverage:</th><td>50%</td></tr> </tbody> </table> <h1>Metrics</h1> <table class="overview"> <thead><tr><th>Method</th><th>Cyclomatic Complexity</th><th>Sequence Coverage</th><th>Branch Coverage</th></tr></thead> <tbody> <tr><td title="System.Boolean FakeXrmEasy.FakeMessageExecutors.LoseOpportunityRequestExecutor::CanExecute(Microsoft.Xrm.Sdk.OrganizationRequest)">CanExecute(...)</td><td>1</td><td>100</td><td>100</td></tr> <tr><td title="Microsoft.Xrm.Sdk.OrganizationResponse FakeXrmEasy.FakeMessageExecutors.LoseOpportunityRequestExecutor::Execute(Microsoft.Xrm.Sdk.OrganizationRequest,FakeXrmEasy.XrmFakedContext)">Execute(...)</td><td>5</td><td>78.95</td><td>57.14</td></tr> <tr><td title="System.Type FakeXrmEasy.FakeMessageExecutors.LoseOpportunityRequestExecutor::GetResponsibleRequestType()">GetResponsibleRequestType()</td><td>1</td><td>100</td><td>100</td></tr> </tbody> </table> <h1>File(s)</h1> <h2 id="Ccodejordimontana82fakexrmeasyFakeXrmEasySharedFakeMessageExecutorsLoseOpportunityRequestExecutorcs">C:\code\jordimontana82\fake-xrm-easy\FakeXrmEasy.Shared\FakeMessageExecutors\LoseOpportunityRequestExecutor.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"><code>1</code></td><td></td><td class="lightgray"><code>using System;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>2</code></td><td></td><td class="lightgray"><code>using System.Linq;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>3</code></td><td></td><td class="lightgray"><code>using Microsoft.Xrm.Sdk;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>4</code></td><td></td><td class="lightgray"><code>using Microsoft.Crm.Sdk.Messages;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>5</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"><code>6</code></td><td></td><td class="lightgray"><code>namespace FakeXrmEasy.FakeMessageExecutors</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>7</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"><code>8</code></td><td></td><td class="lightgray"><code> public class LoseOpportunityRequestExecutor : IFakeMessageExecutor</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>9</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"><code>10</code></td><td></td><td class="lightgray"><code> public bool CanExecute(OrganizationRequest request)</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>11</code></td><td></td><td class="lightgreen"><code> {</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>12</code></td><td></td><td class="lightgreen"><code> return request is LoseOpportunityRequest;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>13</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"><code>14</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"><code>15</code></td><td></td><td class="lightgray"><code> public OrganizationResponse Execute(OrganizationRequest request, XrmFakedContext ctx)</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>16</code></td><td></td><td class="lightgreen"><code> {</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>17</code></td><td></td><td class="lightgreen"><code> var req = request as LoseOpportunityRequest;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>18</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"><code>19</code></td><td></td><td class="lightgray"><code> // Check if OpportunityClose and Status were passed to request</code></td></tr> <tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>20</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (req.OpportunityClose != null &&</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>21</code></td><td></td><td class="lightgreen"><code> req.Status != null)</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>22</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"><code>23</code></td><td></td><td class="lightgray"><code> // LoseOpportunityRequest.OpportunityClose.OpportunityId</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>24</code></td><td></td><td class="lightgreen"><code> var opportunityReference = req.OpportunityClose.GetAttributeValue<EntityReference>("opportunityid");</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>25</code></td><td></td><td class="lightgreen"><code> var opportunityId = opportunityReference.Id;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>26</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"><code>27</code></td><td></td><td class="lightgray"><code> // Get Opportunities (in good scenario, should return 1 record)</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>28</code></td><td></td><td class="lightgreen"><code> var opportunities = (from op in ctx.CreateQuery("opportunity")</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>29</code></td><td></td><td class="lightgreen"><code> where op.Id == opportunityId</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>30</code></td><td></td><td class="lightgreen"><code> select op);</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>31</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"><code>32</code></td><td></td><td class="lightgray"><code> // More than one if to check and give better feedback to user</code></td></tr> <tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>33</code></td><td class="branch50"> </td><td class="lightgreen"><code> if (opportunities.Count() < 1) throw new Exception(string.Format("No Opportunity found with Id = {0}", o</code></td></tr> <tr title="1 of 2 branches are covered" data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>34</code></td><td class="branch50"> </td><td class="lightgreen"><code> else if (opportunities.Count() > 1) throw new Exception(string.Format("More than one Opportunity found w</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>35</code></td><td></td><td class="lightgray"><code> else</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>36</code></td><td></td><td class="lightgreen"><code> {</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>37</code></td><td></td><td class="lightgreen"><code> var opportunity = opportunities.FirstOrDefault();</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>38</code></td><td></td><td class="lightgreen"><code> opportunity.Attributes["statuscode"] = req.Status;</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>39</code></td><td></td><td class="lightgray"><code></code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>40</code></td><td></td><td class="lightgreen"><code> ctx.GetOrganizationService().Update(opportunity);</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>41</code></td><td></td><td class="lightgray"><code></code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><code>42</code></td><td></td><td class="lightgreen"><code> return new LoseOpportunityResponse();</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>43</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"><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"><code>45</code></td><td></td><td class="lightgray"><code> else</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"><code>46</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"><code>47</code></td><td></td><td class="lightred"><code> throw new Exception("OpportunityClose or Status was not passed to request.");</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '', 'LVS': 'gray'}}"><td class="gray"> </td><td class="leftmargin rightmargin right"></td><td class="rightmargin right"><code>48</code></td><td></td><td class="lightgray"><code> }</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '6', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">6</td><td class="rightmargin right"><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"><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"><code>51</code></td><td></td><td class="lightgray"><code> public Type GetResponsibleRequestType()</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '4270', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">4270</td><td class="rightmargin right"><code>52</code></td><td></td><td class="lightgreen"><code> {</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '4270', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">4270</td><td class="rightmargin right"><code>53</code></td><td></td><td class="lightgreen"><code> return typeof(LoseOpportunityRequest);</code></td></tr> <tr data-coverage="{'AllTestMethods': {'VC': '4270', 'LVS': 'green'}}"><td class="green"> </td><td class="leftmargin rightmargin right">4270</td><td class="rightmargin right"><code>54</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"><code>55</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"><code>56</code></td><td></td><td class="lightgray"><code>}</code></td></tr> </tbody> </table> <div class="footer">Generated by: ReportGenerator 2.4.5.0<br />6/27/2022 - 7:19:21 PM<br /><a href="https://github.com/danielpalme/ReportGenerator">GitHub</a> | <a href="http://www.palmmedia.de">www.palmmedia.de</a></div></div> <script type="text/javascript" src="combined.js"></script> </body></html>