Travis pushed coverage of f5d731def9c8d2d06156125f4755e060844edefd@master to gh-pages

This commit is contained in:
TravisCI
2015-11-13 17:54:33 +00:00
parent 1022335146
commit fddb89291d
67 changed files with 1687 additions and 1681 deletions

View File

@@ -67,7 +67,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">61&nbsp;/&nbsp;61</div></td>
<td class="success small"><div align="right">69&nbsp;/&nbsp;69</div></td>
</tr>
<tr>
@@ -96,7 +96,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">61&nbsp;/&nbsp;61</div></td>
<td class="success small"><div align="right">69&nbsp;/&nbsp;69</div></td>
</tr>
<tr>
@@ -243,7 +243,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">52&nbsp;/&nbsp;52</div></td>
<td class="success small"><div align="right">60&nbsp;/&nbsp;60</div></td>
</tr>
@@ -312,8 +312,8 @@
<tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setRefreshTokenTTL</span><span class="keyword">(</span><span class="default">$refreshTokenTTL</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 62" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testSetRefreshTokenTTL&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenTTL</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$refreshTokenTTL</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 63" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testSetRefreshTokenTTL&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 62" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testSetRefreshTokenTTL&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenTTL</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$refreshTokenTTL</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 63" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testSetRefreshTokenTTL&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;TTL&nbsp;of&nbsp;the&nbsp;refresh&nbsp;token</span></td></tr>
@@ -322,7 +322,7 @@
<tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getRefreshTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="6 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenTTL</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlowRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenTTL</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@@ -331,8 +331,8 @@
<tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setRefreshTokenRotation</span><span class="keyword">(</span><span class="default">$refreshTokenRotate</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenRotate</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$refreshTokenRotate</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenRotate</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$refreshTokenRotate</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;rotation&nbsp;boolean&nbsp;of&nbsp;the&nbsp;refresh&nbsp;token</span></td></tr>
@@ -341,8 +341,8 @@
<tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">shouldRotateRefreshTokens</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 91" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenRotate</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 91" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">refreshTokenRotate</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
@@ -351,8 +351,8 @@
<tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setRequireClientSecret</span><span class="keyword">(</span><span class="default">$required</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 101" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requireClientSecret</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$required</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 102" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 101" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requireClientSecret</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$required</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 102" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;True&nbsp;if&nbsp;client&nbsp;secret&nbsp;is&nbsp;required&nbsp;during</span></td></tr>
@@ -362,8 +362,8 @@
<tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">shouldRequireClientSecret</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="10 tests cover line 112" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requireClientSecret</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 112" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requireClientSecret</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@@ -371,108 +371,108 @@
<tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">completeFlow</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="11 tests cover line 121" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientId</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'client_id'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getUser</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="11 tests cover line 122" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$clientId</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 123" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'client_id'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 121" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientId</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'client_id'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getUser</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 122" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$clientId</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 123" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'client_id'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="10 tests cover line 126" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientSecret</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'client_secret'</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="10 tests cover line 127" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getPassword</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="10 tests cover line 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">shouldRequireClientSecret</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$clientSecret</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 129" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'client_secret'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 126" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientSecret</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'client_secret'</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 127" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getPassword</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">shouldRequireClientSecret</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$clientSecret</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 129" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'client_secret'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Validate&nbsp;client&nbsp;ID&nbsp;and&nbsp;client&nbsp;secret</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="9 tests cover line 133" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$client</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getClientStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span></td></tr>
<tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientId</span><span class="keyword">,</span></td></tr>
<tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientSecret</span><span class="keyword">,</span></td></tr>
<tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">null</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="9 tests cover line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getIdentifier</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 133" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$client</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getClientStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 134" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientId</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 135" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$clientSecret</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 136" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">null</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getIdentifier</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 138" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="9 tests cover line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$client</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">ClientEntity</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 141" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getEventEmitter</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">emit</span><span class="keyword">(</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Event</span><span class="default">\</span><span class="default">ClientAuthenticationFailedEvent</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 142" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidClientException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$client</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">ClientEntity</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 141" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getEventEmitter</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">emit</span><span class="keyword">(</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Event</span><span class="default">\</span><span class="default">ClientAuthenticationFailedEvent</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 142" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidClientException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="8 tests cover line 145" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldRefreshTokenParam</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="8 tests cover line 146" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$oldRefreshTokenParam</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 147" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 145" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldRefreshTokenParam</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 146" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$oldRefreshTokenParam</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 147" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowMissingRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRequestException</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Validate&nbsp;refresh&nbsp;token</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="7 tests cover line 151" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRefreshTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">$oldRefreshTokenParam</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 151" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRefreshTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">$oldRefreshTokenParam</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="7 tests cover line 153" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$oldRefreshToken</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">RefreshTokenEntity</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 154" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRefreshException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 153" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$oldRefreshToken</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">RefreshTokenEntity</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 154" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowInvalidRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRefreshException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Ensure&nbsp;the&nbsp;old&nbsp;refresh&nbsp;token&nbsp;hasn't&nbsp;expired</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="6 tests cover line 158" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">isExpired</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 159" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRefreshException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 158" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">isExpired</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 159" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExpiredRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidRefreshException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="5 tests cover line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldAccessToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">getAccessToken</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldAccessToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">getAccessToken</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Get&nbsp;the&nbsp;scopes&nbsp;for&nbsp;the&nbsp;original&nbsp;session</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="5 tests cover line 165" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$session</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$oldAccessToken</span><span class="default">-&gt;</span><span class="default">getSession</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="5 tests cover line 166" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$scopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">formatScopes</span><span class="keyword">(</span><span class="default">$session</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 165" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$session</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$oldAccessToken</span><span class="default">-&gt;</span><span class="default">getSession</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 166" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$scopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">formatScopes</span><span class="keyword">(</span><span class="default">$session</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Get&nbsp;and&nbsp;validate&nbsp;any&nbsp;requested&nbsp;scopes</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="5 tests cover line 169" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestedScopesString</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'scope'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="5 tests cover line 170" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestedScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">validateScopes</span><span class="keyword">(</span><span class="default">$requestedScopesString</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$client</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 169" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestedScopesString</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getRequest</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">request</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'scope'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 170" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestedScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">validateScopes</span><span class="keyword">(</span><span class="default">$requestedScopesString</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$client</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;If&nbsp;no&nbsp;new&nbsp;scopes&nbsp;are&nbsp;requested&nbsp;then&nbsp;give&nbsp;the&nbsp;access&nbsp;token&nbsp;the&nbsp;original&nbsp;session&nbsp;scopes</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="5 tests cover line 173" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">count</span><span class="keyword">(</span><span class="default">$requestedScopes</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="3 tests cover line 174" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$scopes</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span><span class="default">&nbsp;</span><span class="keyword">else</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 173" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">count</span><span class="keyword">(</span><span class="default">$requestedScopes</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 174" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$scopes</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 175" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span><span class="default">&nbsp;</span><span class="keyword">else</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;The&nbsp;OAuth&nbsp;spec&nbsp;says&nbsp;that&nbsp;a&nbsp;refreshed&nbsp;access&nbsp;token&nbsp;can&nbsp;have&nbsp;the&nbsp;original&nbsp;scopes&nbsp;or&nbsp;fewer&nbsp;so&nbsp;ensure</span></td></tr>
<tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;&nbsp;the&nbsp;request&nbsp;doesn't&nbsp;include&nbsp;any&nbsp;new&nbsp;scopes</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="2 tests cover line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$requestedScopes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$requestedScope</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="2 tests cover line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$scopes</span><span class="keyword">[</span><span class="default">$requestedScope</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="2 tests cover line 180" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidScopeException</span><span class="keyword">(</span><span class="default">$requestedScope</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$requestedScopes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$requestedScope</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">$scopes</span><span class="keyword">[</span><span class="default">$requestedScope</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 180" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopesInvalid&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Exception</span><span class="default">\</span><span class="default">InvalidScopeException</span><span class="keyword">(</span><span class="default">$requestedScope</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 182" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 184" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$requestedScopes</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 184" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$requestedScopes</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Generate&nbsp;a&nbsp;new&nbsp;access&nbsp;token&nbsp;and&nbsp;assign&nbsp;it&nbsp;the&nbsp;correct&nbsp;sessions</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 188" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">AccessTokenEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 189" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">setId</span><span class="keyword">(</span><span class="default">SecureKey</span><span class="default">::</span><span class="default">generate</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 190" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getAccessTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">+</span><span class="default">&nbsp;</span><span class="default">time</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 191" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">setSession</span><span class="keyword">(</span><span class="default">$session</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 188" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">AccessTokenEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 189" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">setId</span><span class="keyword">(</span><span class="default">SecureKey</span><span class="default">::</span><span class="default">generate</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 190" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getAccessTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">+</span><span class="default">&nbsp;</span><span class="default">time</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 191" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">setSession</span><span class="keyword">(</span><span class="default">$session</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 193" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$newScopes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$newScope</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 194" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$newScope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 193" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$newScopes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$newScope</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 194" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$newScope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 195" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Expire&nbsp;the&nbsp;old&nbsp;token&nbsp;and&nbsp;save&nbsp;the&nbsp;new&nbsp;one</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 198" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldAccessToken</span><span class="default">-&gt;</span><span class="default">expire</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 199" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 198" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldAccessToken</span><span class="default">-&gt;</span><span class="default">expire</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 199" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 201" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setSession</span><span class="keyword">(</span><span class="default">$session</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 202" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'access_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 203" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'expires_in'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getAccessTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 201" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setSession</span><span class="keyword">(</span><span class="default">$session</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 202" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'access_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$newAccessToken</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 203" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'expires_in'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getAccessTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 205" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">shouldRotateRefreshTokens</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 205" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">shouldRotateRefreshTokens</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Expire&nbsp;the&nbsp;old&nbsp;refresh&nbsp;token</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 207" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">expire</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 207" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">expire</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Generate&nbsp;a&nbsp;new&nbsp;refresh&nbsp;token</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 210" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">RefreshTokenEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 211" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">setId</span><span class="keyword">(</span><span class="default">SecureKey</span><span class="default">::</span><span class="default">generate</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 212" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getRefreshTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">+</span><span class="default">&nbsp;</span><span class="default">time</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 213" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">setAccessToken</span><span class="keyword">(</span><span class="default">$newAccessToken</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 214" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 210" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">RefreshTokenEntity</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 211" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">setId</span><span class="keyword">(</span><span class="default">SecureKey</span><span class="default">::</span><span class="default">generate</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 212" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getRefreshTokenTTL</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">+</span><span class="default">&nbsp;</span><span class="default">time</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 213" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">setAccessToken</span><span class="keyword">(</span><span class="default">$newAccessToken</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 214" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 216" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span><span class="default">&nbsp;</span><span class="keyword">else</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-large-tests popin" data-title="1 test covers line 218" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 216" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$newRefreshToken</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 217" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span><span class="default">&nbsp;</span><span class="keyword">else</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 218" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">setParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$oldRefreshToken</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-large-tests popin" data-title="4 tests cover line 221" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">generateResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 221" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRequestScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\RefreshTokenGrantTest::testCompleteFlowShouldRequireClientSecret&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getTokenType</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">generateResponse</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
</tbody>
@@ -486,7 +486,7 @@
<span class="warning"><strong>Dead Code</strong></span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 3.0.1</a> using <a href="http://php.net/" target="_top">PHP 7.0.1-dev</a> and <a href="https://phpunit.de/">PHPUnit 5.0.9</a> at Fri Nov 13 17:54:04 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.4</a> using <a href="http://php.net/" target="_top">PHP 5.5.21</a> and <a href="http://phpunit.de/">PHPUnit 4.3.5</a> at Fri Nov 13 17:54:21 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>