Travis pushed coverage of a9f61fd3ed2dcc1a8b0dff875b49b7e1bf0c0f6f@master to gh-pages

This commit is contained in:
TravisCI 2015-09-04 07:30:36 +00:00
parent 67db814c52
commit 977475a513
67 changed files with 846 additions and 701 deletions
master
AbstractServer.php.htmlAuthorizationServer.php.html
Entity
Event
Exception
Grant
ResourceServer.php.html
Storage
TokenType
Util
dashboard.htmlindex.html

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -411,9 +411,9 @@
<tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="64"></a><a href="#64">64</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">__construct</span><span class="keyword">(</span><span class="default">AbstractServer</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">)</span></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="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="30 tests cover line 66" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessTokenId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="66"></a><a href="#66">66</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">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="31 tests cover line 66" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessTokenId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="66"></a><a href="#66">66</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">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="30 tests cover line 68" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessTokenId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="68"></a><a href="#68">68</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="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="31 tests cover line 68" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessTokenId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="68"></a><a href="#68">68</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="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="69"></a><a href="#69">69</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="70"></a><a href="#70">70</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
@ -425,9 +425,9 @@
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="78"></a><a href="#78">78</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">setSession</span><span class="keyword">(</span><span class="default">SessionEntity</span><span class="default">&nbsp;</span><span class="default">$session</span><span class="keyword">)</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">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">session</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$session</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="80"></a><a href="#80">80</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">session</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$session</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="82"></a><a href="#82">82</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="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="83"></a><a href="#83">83</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="84"></a><a href="#84">84</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -439,9 +439,9 @@
<tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">$expireTime</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="17 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">expireTime</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$expireTime</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="18 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">expireTime</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$expireTime</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="17 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</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="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="18 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</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="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="97"></a><a href="#97">97</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="98"></a><a href="#98">98</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
@ -451,7 +451,7 @@
<tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></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="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getExpireTime</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="105"></a><a href="#105">105</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="14 tests cover line 106" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="106"></a><a href="#106">106</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">expireTime</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="15 tests cover line 106" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="106"></a><a href="#106">106</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">expireTime</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="107"></a><a href="#107">107</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="108"></a><a href="#108">108</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -461,7 +461,7 @@
<tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="114"></a><a href="#114">114</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">isExpired</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="115"></a><a href="#115">115</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="11 tests cover line 116" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">time</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">$this</span><span class="default">-&gt;</span><span class="default">expireTime</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">&gt;</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 116" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">time</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">$this</span><span class="default">-&gt;</span><span class="default">expireTime</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">&gt;</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="117"></a><a href="#117">117</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="118"></a><a href="#118">118</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
@ -473,9 +473,9 @@
<tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setId</span><span class="keyword">(</span><span class="default">$id</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
<tr><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;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="19 tests cover line 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&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="default">$this</span><span class="default">-&gt;</span><span class="default">id</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$id</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><span class="default">&nbsp;</span><span class="default">$id</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</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></td></tr>
<tr class="covered-by-small-tests popin" data-title="20 tests cover line 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&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="default">$this</span><span class="default">-&gt;</span><span class="default">id</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$id</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><span class="default">&nbsp;</span><span class="default">$id</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</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></td></tr>
<tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="19 tests cover line 130" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="20 tests cover line 130" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::test__toString&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="131"></a><a href="#131">131</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="132"></a><a href="#132">132</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
@ -485,7 +485,7 @@
<tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getId</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="16 tests cover line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">id</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="17 tests cover line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">id</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"></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;</span><span class="comment">/**</span></td></tr>
@ -513,18 +513,18 @@
<tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">formatScopes</span><span class="keyword">(</span><span class="default">$unformatted</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 168" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="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">$unformatted</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="9 tests cover line 168" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="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="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">$unformatted</span><span class="keyword">)</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="danger"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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="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 class="covered-by-small-tests popin" data-title="8 tests cover line 172" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$scopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 173" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$unformatted</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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="7 tests cover line 174" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&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="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="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$scope</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">ScopeEntity</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="7 tests cover line 175" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&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="175"></a><a href="#175">175</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="default">$scopes</span><span class="keyword">[</span><span class="default">$scope</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="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$scope</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 176" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\RefreshTokenGrantTest::testCompleteFlowExistingScopes&lt;/li&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="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="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 177" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 172" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="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="default">$scopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 173" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$unformatted</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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="8 tests cover line 174" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\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="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$scope</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">ScopeEntity</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="8 tests cover line 175" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$scopes</span><span class="keyword">[</span><span class="default">$scope</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="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$scope</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 176" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\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="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="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 177" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="177"></a><a href="#177">177</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="178"></a><a href="#178">178</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&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;</span><span class="keyword">return</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="9 tests cover line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="179"></a><a href="#179">179</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">$scopes</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</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"></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;</span><span class="comment">/**</span></td></tr>
@ -567,7 +567,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -234,13 +234,13 @@
<tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="24"></a><a href="#24">24</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">getSession</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="25"></a><a href="#25">25</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="11 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="26"></a><a href="#26">26</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">session</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">SessionEntity</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="9 tests cover line 27" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="27"></a><a href="#27">27</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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">session</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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="26"></a><a href="#26">26</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">session</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">SessionEntity</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="10 tests cover line 27" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="27"></a><a href="#27">27</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">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">session</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="28"></a><a href="#28">28</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="29"></a><a href="#29">29</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 30" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="30"></a><a href="#30">30</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">session</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">getSessionStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getByAccessToken</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 30" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&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::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="30"></a><a href="#30">30</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">session</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">getSessionStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getByAccessToken</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="32"></a><a href="#32">32</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">session</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&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::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="32"></a><a href="#32">32</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">session</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="33"></a><a href="#33">33</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="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -266,13 +266,13 @@
<tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="56"></a><a href="#56">56</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">getScopes</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="57"></a><a href="#57">57</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 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</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">scopes</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="4 tests cover line 59" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="59"></a><a href="#59">59</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">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></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 60" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 61" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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="4 tests cover line 62" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&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="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="58"></a><a href="#58">58</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">scopes</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="5 tests cover line 59" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="59"></a><a href="#59">59</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">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></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 60" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="60"></a><a href="#60">60</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="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 61" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="61"></a><a href="#61">61</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><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 62" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 64" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="64"></a><a href="#64">64</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">scopes</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 64" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="64"></a><a href="#64">64</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">scopes</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -280,18 +280,18 @@
<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">save</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-small-tests popin" data-title="10 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/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="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">create</span><span class="keyword">(</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 73" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getId</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 74" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="74"></a><a href="#74">74</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">getExpireTime</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 75" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getSession</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 76" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="76"></a><a href="#76">76</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="11 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">create</span><span class="keyword">(</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 73" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="73"></a><a href="#73">73</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">getId</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 74" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="74"></a><a href="#74">74</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">getExpireTime</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 75" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="75"></a><a href="#75">75</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">getSession</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 76" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="76"></a><a href="#76">76</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="77"></a><a href="#77">77</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Associate&nbsp;the&nbsp;scope&nbsp;with&nbsp;the&nbsp;token</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 79" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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="9 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/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="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 79" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="79"></a><a href="#79">79</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">$this</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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="10 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="80"></a><a href="#80">80</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">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 83" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="83"></a><a href="#83">83</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="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="11 tests cover line 83" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="83"></a><a href="#83">83</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="keyword">;</span></td></tr>
<tr class="warning"><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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -299,8 +299,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">expire</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-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\Entity\AccessTokenEntityTest::testExpire&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;/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="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">delete</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&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;/ul&gt;" data-placement="bottom" data-html="true"><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="5 tests cover line 91" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&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="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="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getAccessTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">delete</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testExpire&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="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"><span class="keyword">}</span></td></tr>
</tbody>
@ -314,7 +314,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -391,7 +391,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -264,9 +264,9 @@
<tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="54"></a><a href="#54">54</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">setAccessToken</span><span class="keyword">(</span><span class="default">AccessTokenEntity</span><span class="default">&nbsp;</span><span class="default">$accessTokenEntity</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="55"></a><a href="#55">55</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="6 tests cover line 56" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="56"></a><a href="#56">56</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">accessTokenEntity</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$accessTokenEntity</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 56" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&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="56"></a><a href="#56">56</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">accessTokenEntity</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$accessTokenEntity</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</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="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSetAccessToken&lt;/li&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="58"></a><a href="#58">58</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="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="59"></a><a href="#59">59</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="60"></a><a href="#60">60</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
@ -276,11 +276,11 @@
<tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="66"></a><a href="#66">66</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">getAccessToken</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</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="7 tests cover line 68" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="68"></a><a href="#68">68</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">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">accessTokenEntity</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">AccessTokenEntity</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="5 tests cover line 69" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="69"></a><a href="#69">69</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">accessTokenEntity</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">getAccessTokenStorage</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">$this</span><span class="default">-&gt;</span><span class="default">accessTokenId</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 70" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="70"></a><a href="#70">70</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 68" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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::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="68"></a><a href="#68">68</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">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">accessTokenEntity</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">AccessTokenEntity</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="6 tests cover line 69" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&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::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="69"></a><a href="#69">69</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">accessTokenEntity</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">getAccessTokenStorage</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">$this</span><span class="default">-&gt;</span><span class="default">accessTokenId</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 70" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&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::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="70"></a><a href="#70">70</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="71"></a><a href="#71">71</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="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">accessTokenEntity</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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::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="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">accessTokenEntity</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>
@ -288,20 +288,20 @@
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="78"></a><a href="#78">78</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">save</span><span class="keyword">(</span><span class="keyword">)</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">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">getRefreshTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">create</span><span class="keyword">(</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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;/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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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;/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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getExpireTime</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 83" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="83"></a><a href="#83">83</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">getAccessToken</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 84" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 85" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="85"></a><a href="#85">85</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="7 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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="80"></a><a href="#80">80</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">getRefreshTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">create</span><span class="keyword">(</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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="81"></a><a href="#81">81</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">getId</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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="82"></a><a href="#82">82</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">getExpireTime</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 83" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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="83"></a><a href="#83">83</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">getAccessToken</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getId</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 84" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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="84"></a><a href="#84">84</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="7 tests cover line 85" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&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="85"></a><a href="#85">85</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="86"></a><a href="#86">86</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="87"></a><a href="#87">87</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="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;{@inheritdoc}</span></td></tr>
<tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">expire</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><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;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">getRefreshTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">delete</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 93" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="93"></a><a href="#93">93</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="5 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&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="92"></a><a href="#92">92</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">getRefreshTokenStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">delete</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 93" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testExpire&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="93"></a><a href="#93">93</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="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
</tbody>
@ -315,7 +315,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -240,9 +240,9 @@
<tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="51"></a><a href="#51">51</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">__construct</span><span class="keyword">(</span><span class="default">AbstractServer</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="52"></a><a href="#52">52</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="29 tests cover line 53" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\ScopeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScopeArray&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="53"></a><a href="#53">53</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">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="30 tests cover line 53" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\ScopeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScopeArray&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="53"></a><a href="#53">53</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">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="29 tests cover line 55" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\ScopeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScopeArray&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="55"></a><a href="#55">55</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="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="30 tests cover line 55" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\ScopeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScopeArray&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlowInvalidCredentials&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="55"></a><a href="#55">55</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="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="56"></a><a href="#56">56</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="57"></a><a href="#57">57</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -252,7 +252,7 @@
<tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getId</span><span class="keyword">(</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="24 tests cover line 65" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\ScopeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScopeArray&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">id</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="25 tests cover line 65" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\ScopeEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AbstractGrantTest::testValidateScopesDefaultScopeArray&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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="65"></a><a href="#65">65</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">id</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="66"></a><a href="#66">66</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="67"></a><a href="#67">67</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -290,7 +290,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -512,9 +512,9 @@
<tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">AbstractServer</span><span class="default">&nbsp;</span><span class="default">$server</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="24 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="25 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="24 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</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="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="25 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AbstractTokenEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\RefreshTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testClientNotAuthorizedToUseGrant&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValid&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\ResourceServerTest::testIsValidExpiredToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</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="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="97"></a><a href="#97">97</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="98"></a><a href="#98">98</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
@ -538,7 +538,7 @@
<tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="118"></a><a href="#118">118</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">getId</span><span class="keyword">(</span><span class="keyword">)</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">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 120" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">id</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="14 tests cover line 120" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AccessTokenEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\AuthCodeEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSetGet&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="120"></a><a href="#120">120</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">id</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
@ -580,11 +580,11 @@
<tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getScopes</span><span class="keyword">(</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="14 tests cover line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="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="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">scopes</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="6 tests cover line 163" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="163"></a><a href="#163">163</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">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">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getSessionStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 164" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="15 tests cover line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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="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">scopes</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="7 tests cover line 163" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="163"></a><a href="#163">163</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">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">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">-&gt;</span><span class="default">getSessionStorage</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 164" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="14 tests cover line 166" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::testCompleteFlowRequestScopesInvalid&lt;/li&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="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="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">scopes</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="15 tests cover line 166" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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::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="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">scopes</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="167"></a><a href="#167">167</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="168"></a><a href="#168">168</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
@ -596,8 +596,8 @@
<tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">formatScopes</span><span class="keyword">(</span><span class="default">$unformatted</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">)</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;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&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;</span><span class="default">$scopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&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;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_array</span><span class="keyword">(</span><span class="default">$unformatted</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="8 tests cover line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="178"></a><a href="#178">178</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="keyword">[</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="179"></a><a href="#179">179</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_array</span><span class="keyword">(</span><span class="default">$unformatted</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 180" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&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;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$unformatted</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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 181" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$scope</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">ScopeEntity</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 182" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$scopes</span><span class="keyword">[</span><span class="default">$scope</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="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$scope</span><span class="keyword">;</span></td></tr>
@ -605,7 +605,7 @@
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 184" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&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="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 185" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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 class="covered-by-small-tests popin" data-title="7 tests cover line 187" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::testCompleteFlowRotateRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">return</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="8 tests cover line 187" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testFormatScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testGetScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testHasScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Entity\SessionEntityTest::testSave&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlowNoScopes&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::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="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="keyword">return</span><span class="default">&nbsp;</span><span class="default">$scopes</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
@ -739,7 +739,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -143,7 +143,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -305,7 +305,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -234,7 +234,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -234,7 +234,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -234,7 +234,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -141,7 +141,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -165,7 +165,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -173,7 +173,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -173,7 +173,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -173,7 +173,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -179,7 +179,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -173,7 +173,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -181,7 +181,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -181,7 +181,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -330,7 +330,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -174,7 +174,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -173,7 +173,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -179,7 +179,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -174,7 +174,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -137,7 +137,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -417,7 +417,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

File diff suppressed because one or more lines are too long

@ -42,65 +42,65 @@
</thead>
<tbody>
<tr>
<td class="success">Total</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="danger">Total</td>
<td class="danger big"> <div class="progress">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
<span class="sr-only">0.00% covered (danger)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
<td class="warning big"> <div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="83.33" aria-valuemin="0" aria-valuemax="100" style="width: 83.33%">
<span class="sr-only">83.33% covered (warning)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
<td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
<td class="warning small"><div align="right">83.33%</div></td>
<td class="warning small"><div align="right">5&nbsp;/&nbsp;6</div></td>
<td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="98.15" aria-valuemin="0" aria-valuemax="100" style="width: 98.15%">
<span class="sr-only">98.15% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">105&nbsp;/&nbsp;105</div></td>
<td class="success small"><div align="right">98.15%</div></td>
<td class="success small"><div align="right">106&nbsp;/&nbsp;108</div></td>
</tr>
<tr>
<td class="success">AuthCodeGrant</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="danger">AuthCodeGrant</td>
<td class="danger big"> <div class="progress">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
<span class="sr-only">0.00% covered (danger)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
<td class="warning big"> <div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="83.33" aria-valuemin="0" aria-valuemax="100" style="width: 83.33%">
<span class="sr-only">83.33% covered (warning)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
<td class="success small">25</td>
<td class="warning small"><div align="right">83.33%</div></td>
<td class="warning small"><div align="right">5&nbsp;/&nbsp;6</div></td>
<td class="warning small">28</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="98.15" aria-valuemin="0" aria-valuemax="100" style="width: 98.15%">
<span class="sr-only">98.15% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">105&nbsp;/&nbsp;105</div></td>
<td class="success small"><div align="right">98.15%</div></td>
<td class="success small"><div align="right">106&nbsp;/&nbsp;108</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#70"><abbr title="setAuthTokenTTL($authTokenTTL)">setAuthTokenTTL</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#78"><abbr title="setAuthTokenTTL($authTokenTTL)">setAuthTokenTTL</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -121,7 +121,49 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#82"><abbr title="checkAuthorizeParams()">checkAuthorizeParams</abbr></a></td>
<td class="danger" colspan="4">&nbsp;<a href="#88"><abbr title="setRequireClientSecret($required)">setRequireClientSecret</abbr></a></td>
<td class="danger big"> <div class="progress">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
<span class="sr-only">0.00% covered (danger)</span>
</div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
<td class="danger small">2</td>
<td class="danger big"> <div class="progress">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
<span class="sr-only">0.00% covered (danger)</span>
</div>
</div>
</td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#99"><abbr title="shouldRequireClientSecret()">shouldRequireClientSecret</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success small">1</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#111"><abbr title="checkAuthorizeParams()">checkAuthorizeParams</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -142,7 +184,7 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#145"><abbr title="newAuthorizeRequest($type, $typeId, $authParams = [])">newAuthorizeRequest</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#174"><abbr title="newAuthorizeRequest($type, $typeId, $authParams = [])">newAuthorizeRequest</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -163,7 +205,7 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#177"><abbr title="completeFlow()">completeFlow</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#206"><abbr title="completeFlow()">completeFlow</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -172,7 +214,7 @@
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success small">14</td>
<td class="success small">15</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -251,217 +293,246 @@
<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">protected</span><span class="default">&nbsp;</span><span class="default">$authTokenTTL</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">600</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"></td></tr>
<tr><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="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Override&nbsp;the&nbsp;default&nbsp;access&nbsp;token&nbsp;expire&nbsp;time</span></td></tr>
<tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</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;@param&nbsp;int&nbsp;$authTokenTTL</span></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;void</span></td></tr>
<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">setAuthTokenTTL</span><span class="keyword">(</span><span class="default">$authTokenTTL</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-small-tests popin" data-title="1 test covers line 72" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testSetAuthTokenTTL&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="default">$this</span><span class="default">-&gt;</span><span class="default">authTokenTTL</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$authTokenTTL</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 73" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testSetAuthTokenTTL&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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>
<tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;authorize&nbsp;parameters</span></td></tr>
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<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;*&nbsp;@return&nbsp;array&nbsp;Authorize&nbsp;request&nbsp;parameters</span></td></tr>
<tr><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws</span></td></tr>
<tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">checkAuthorizeParams</span><span class="keyword">(</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Get&nbsp;required&nbsp;params</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 85" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="85"></a><a href="#85">85</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">query</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">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 86" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="86"></a><a href="#86">86</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 87" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingClientId&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="87"></a><a href="#87">87</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="88"></a><a href="#88">88</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="89"></a><a href="#89">89</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 90" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$redirectUri</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">query</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'redirect_uri'</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="7 tests cover line 91" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$redirectUri</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 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">'redirect_uri'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="93"></a><a href="#93">93</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="94"></a><a href="#94">94</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="95"></a><a href="#95">95</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;redirect&nbsp;URI</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</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="6 tests cover line 97" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="97"></a><a href="#97">97</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="6 tests cover line 98" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="98"></a><a href="#98">98</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="6 tests cover line 99" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 100" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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="6 tests cover line 101" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 103" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</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 104" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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 105" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="105"></a><a href="#105">105</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="106"></a><a href="#106">106</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="107"></a><a href="#107">107</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 108" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$state</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">query</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'state'</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="5 tests cover line 109" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="109"></a><a href="#109">109</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">server</span><span class="default">-&gt;</span><span class="default">stateParamRequired</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="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">$state</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 110" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">'state'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 113" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$responseType</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">query</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'response_type'</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="4 tests cover line 114" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="114"></a><a href="#114">114</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">$responseType</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 115" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</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">'response_type'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Ensure&nbsp;response&nbsp;type&nbsp;is&nbsp;one&nbsp;that&nbsp;is&nbsp;recognised</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 119" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">in_array</span><span class="keyword">(</span><span class="default">$responseType</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">getResponseTypes</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 120" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">UnsupportedResponseTypeException</span><span class="keyword">(</span><span class="default">$responseType</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">//&nbsp;Validate&nbsp;any&nbsp;scopes&nbsp;that&nbsp;are&nbsp;in&nbsp;the&nbsp;request</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 124" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$scopeParam</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">query</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="2 tests cover line 125" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="125"></a><a href="#125">125</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">validateScopes</span><span class="keyword">(</span><span class="default">$scopeParam</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$client</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="keyword">return</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 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'client'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$client</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\AuthCodeGrantTest::testCheckAuthoriseParams&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="default">'redirect_uri'</span><span class="default">&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 130" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'state'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$state</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 131" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="131"></a><a href="#131">131</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">'response_type'</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$responseType</span><span class="keyword">,</span></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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'scopes'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$scopes</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 133" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</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"></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;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Parse&nbsp;a&nbsp;new&nbsp;authorize&nbsp;request</span></td></tr>
<tr><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;session&nbsp;owner's&nbsp;type</span></td></tr>
<tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$typeId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;session&nbsp;owner's&nbsp;ID</span></td></tr>
<tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;&nbsp;$authParams&nbsp;The&nbsp;authorize&nbsp;request&nbsp;$_GET&nbsp;parameters</span></td></tr>
<tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;string&nbsp;An&nbsp;authorisation&nbsp;code</span></td></tr>
<tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">newAuthorizeRequest</span><span class="keyword">(</span><span class="default">$type</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$typeId</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$authParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</span><span class="keyword">)</span></td></tr>
<tr><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;</span><span class="keyword">{</span></td></tr>
<tr><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;</span><span class="comment">//&nbsp;Create&nbsp;a&nbsp;new&nbsp;session</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 148" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$session</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">SessionEntity</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="1 test covers line 149" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="149"></a><a href="#149">149</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">-&gt;</span><span class="default">setOwner</span><span class="keyword">(</span><span class="default">$type</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$typeId</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 150" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$session</span><span class="default">-&gt;</span><span class="default">associateClient</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'client'</span><span class="keyword">]</span><span class="keyword">)</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"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Whether&nbsp;to&nbsp;require&nbsp;the&nbsp;client&nbsp;secret&nbsp;when</span></td></tr>
<tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;completing&nbsp;the&nbsp;flow.</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;*</span></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;boolean</span></td></tr>
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="default">$requireClientSecret</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="70"></a><a href="#70">70</a></div></td><td class="codeLine"></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="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Override&nbsp;the&nbsp;default&nbsp;access&nbsp;token&nbsp;expire&nbsp;time</span></td></tr>
<tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;$authTokenTTL</span></td></tr>
<tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;void</span></td></tr>
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="78"></a><a href="#78">78</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">setAuthTokenTTL</span><span class="keyword">(</span><span class="default">$authTokenTTL</span><span class="keyword">)</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">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testSetAuthTokenTTL&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">authTokenTTL</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$authTokenTTL</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\AuthCodeGrantTest::testSetAuthTokenTTL&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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="83"></a><a href="#83">83</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="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</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;@param&nbsp;bool&nbsp;$required&nbsp;True&nbsp;to&nbsp;require&nbsp;client&nbsp;secret&nbsp;during&nbsp;access</span></td></tr>
<tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;request.&nbsp;False&nbsp;if&nbsp;not.&nbsp;Default&nbsp;=&nbsp;true</span></td></tr>
<tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="88"></a><a href="#88">88</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="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="danger"><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;&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="danger"><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;</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"></td></tr>
<tr><td><div align="right"><a name="93"></a><a href="#93">93</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="94"></a><a href="#94">94</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>
<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;*&nbsp;access&nbsp;token&nbsp;request.&nbsp;False&nbsp;if&nbsp;it&nbsp;isn't.</span></td></tr>
<tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;bool</span></td></tr>
<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">shouldRequireClientSecret</span><span class="keyword">(</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-small-tests popin" data-title="9 tests cover line 101" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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="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="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;Check&nbsp;authorize&nbsp;parameters</span></td></tr>
<tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array&nbsp;Authorize&nbsp;request&nbsp;parameters</span></td></tr>
<tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<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;*&nbsp;@throws</span></td></tr>
<tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">checkAuthorizeParams</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><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;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Get&nbsp;required&nbsp;params</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 114" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="114"></a><a href="#114">114</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">query</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">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 115" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</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 116" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingClientId&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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="117"></a><a href="#117">117</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="118"></a><a href="#118">118</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 119" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$redirectUri</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">query</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'redirect_uri'</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="7 tests cover line 120" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">$redirectUri</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 121" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingRedirectUri&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;&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">'redirect_uri'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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">}</span></td></tr>
<tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"></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="comment">//&nbsp;Validate&nbsp;client&nbsp;ID&nbsp;and&nbsp;redirect&nbsp;URI</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 125" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="125"></a><a href="#125">125</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="6 tests cover line 126" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;&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="6 tests cover line 127" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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">null</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 128" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 129" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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="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="6 tests cover line 130" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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><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 class="covered-by-small-tests popin" data-title="6 tests cover line 132" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="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 133" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&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;&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 134" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidClient&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="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="135"></a><a href="#135">135</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="136"></a><a href="#136">136</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;</span><span class="default">$state</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">query</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'state'</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="5 tests cover line 138" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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">if</span><span class="default">&nbsp;</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">stateParamRequired</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="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">$state</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 139" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingStateParam&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="139"></a><a href="#139">139</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">'state'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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">}</span></td></tr>
<tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 142" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;</span><span class="default">$responseType</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">query</span><span class="default">-&gt;</span><span class="default">get</span><span class="keyword">(</span><span class="default">'response_type'</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="4 tests cover line 143" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$responseType</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 144" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsMissingResponseType&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="144"></a><a href="#144">144</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">'response_type'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">//&nbsp;Ensure&nbsp;response&nbsp;type&nbsp;is&nbsp;one&nbsp;that&nbsp;is&nbsp;recognised</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 148" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">in_array</span><span class="keyword">(</span><span class="default">$responseType</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">getResponseTypes</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 149" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidResponseType&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="149"></a><a href="#149">149</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">UnsupportedResponseTypeException</span><span class="keyword">(</span><span class="default">$responseType</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Create&nbsp;a&nbsp;new&nbsp;auth&nbsp;code</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 153" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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="default">$authCode</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">AuthCodeEntity</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="1 test covers line 154" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;</span><span class="default">$authCode</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="1 test covers line 155" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$authCode</span><span class="default">-&gt;</span><span class="default">setRedirectUri</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'redirect_uri'</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 156" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$authCode</span><span class="default">-&gt;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">time</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">$this</span><span class="default">-&gt;</span><span class="default">authTokenTTL</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 158" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'scopes'</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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\AuthCodeGrantTest::testNewAuthoriseRequest&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="default">$authCode</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 160" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$session</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 161" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="161"></a><a href="#161">161</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="162"></a><a href="#162">162</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 163" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="163"></a><a href="#163">163</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">-&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="1 test covers line 164" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$authCode</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="1 test covers line 165" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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">$authCode</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="166"></a><a href="#166">166</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 167" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="167"></a><a href="#167">167</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">$authCode</span><span class="default">-&gt;</span><span class="default">generateRedirectUri</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'state'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Complete&nbsp;the&nbsp;auth&nbsp;code&nbsp;grant</span></td></tr>
<tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array</span></td></tr>
<tr><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws</span></td></tr>
<tr><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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;</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="178"></a><a href="#178">178</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="179"></a><a href="#179">179</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;required&nbsp;params</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 180" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</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="10 tests cover line 181" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</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 182" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientId&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">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="183"></a><a href="#183">183</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="184"></a><a href="#184">184</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 185" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="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="9 tests cover line 186" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="186"></a><a href="#186">186</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="9 tests cover line 187" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="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">$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 188" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&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;&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="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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 191" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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">$redirectUri</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">'redirect_uri'</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 192" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="192"></a><a href="#192">192</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">$redirectUri</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 193" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&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;&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">'redirect_uri'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Validate&nbsp;any&nbsp;scopes&nbsp;that&nbsp;are&nbsp;in&nbsp;the&nbsp;request</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 153" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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="default">$scopeParam</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">query</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="2 tests cover line 154" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParamsInvalidScope&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;</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">validateScopes</span><span class="keyword">(</span><span class="default">$scopeParam</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$client</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$redirectUri</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"></td></tr>
<tr><td><div align="right"><a name="156"></a><a href="#156">156</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="keyword">[</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 157" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'client'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$client</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 158" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'redirect_uri'</span><span class="default">&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$redirectUri</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\AuthCodeGrantTest::testCheckAuthoriseParams&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="default">'state'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$state</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 160" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'response_type'</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$responseType</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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">'scopes'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$scopes</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCheckAuthoriseParams&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="keyword">]</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="163"></a><a href="#163">163</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="164"></a><a href="#164">164</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Parse&nbsp;a&nbsp;new&nbsp;authorize&nbsp;request</span></td></tr>
<tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;session&nbsp;owner's&nbsp;type</span></td></tr>
<tr><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$typeId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;session&nbsp;owner's&nbsp;ID</span></td></tr>
<tr><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;&nbsp;$authParams&nbsp;The&nbsp;authorize&nbsp;request&nbsp;$_GET&nbsp;parameters</span></td></tr>
<tr><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;string&nbsp;An&nbsp;authorisation&nbsp;code</span></td></tr>
<tr><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">newAuthorizeRequest</span><span class="keyword">(</span><span class="default">$type</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$typeId</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$authParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">[</span><span class="keyword">]</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;</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;</span><span class="comment">//&nbsp;Create&nbsp;a&nbsp;new&nbsp;session</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 177" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</span><span class="default">$session</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">SessionEntity</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="1 test covers line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;</span><span class="default">$session</span><span class="default">-&gt;</span><span class="default">setOwner</span><span class="keyword">(</span><span class="default">$type</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$typeId</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;</span><span class="default">$session</span><span class="default">-&gt;</span><span class="default">associateClient</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'client'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"></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;</span><span class="comment">//&nbsp;Create&nbsp;a&nbsp;new&nbsp;auth&nbsp;code</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\AuthCodeGrantTest::testNewAuthoriseRequest&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;</span><span class="default">$authCode</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">AuthCodeEntity</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="1 test covers line 183" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$authCode</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="1 test covers line 184" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;</span><span class="default">$authCode</span><span class="default">-&gt;</span><span class="default">setRedirectUri</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'redirect_uri'</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 185" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="default">$authCode</span><span class="default">-&gt;</span><span class="default">setExpireTime</span><span class="keyword">(</span><span class="default">time</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">$this</span><span class="default">-&gt;</span><span class="default">authTokenTTL</span><span class="keyword">)</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 class="covered-by-small-tests popin" data-title="1 test covers line 187" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'scopes'</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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 188" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$authCode</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 189" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$session</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 190" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 192" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="192"></a><a href="#192">192</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">-&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="1 test covers line 193" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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="default">$authCode</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="1 test covers line 194" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&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;</span><span class="default">$authCode</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="195"></a><a href="#195">195</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="196"></a><a href="#196">196</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-small-tests popin" data-title="7 tests cover line 197" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="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="7 tests cover line 198" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;&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="7 tests cover line 199" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;&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="7 tests cover line 200" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="200"></a><a href="#200">200</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">$redirectUri</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 201" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;&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="7 tests cover line 202" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 204" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="204"></a><a href="#204">204</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 205" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&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;&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 206" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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="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="207"></a><a href="#207">207</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="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;</span><span class="comment">//&nbsp;Validate&nbsp;the&nbsp;auth&nbsp;code</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 210" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</span><span class="default">$authCode</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">'code'</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="6 tests cover line 211" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</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">$authCode</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 212" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&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="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">'code'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 215" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$code</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">getAuthCodeStorage</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">$authCode</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 216" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$code</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">AuthCodeEntity</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 217" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&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;&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">'code'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 196" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="196"></a><a href="#196">196</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">$authCode</span><span class="default">-&gt;</span><span class="default">generateRedirectUri</span><span class="keyword">(</span><span class="default">$authParams</span><span class="keyword">[</span><span class="default">'state'</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><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;</span><span class="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">/**</span></td></tr>
<tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Complete&nbsp;the&nbsp;auth&nbsp;code&nbsp;grant</span></td></tr>
<tr><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array</span></td></tr>
<tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@throws</span></td></tr>
<tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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;</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="207"></a><a href="#207">207</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="208"></a><a href="#208">208</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;required&nbsp;params</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 209" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;</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="10 tests cover line 210" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientId&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</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 211" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientId&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="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="212"></a><a href="#212">212</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="213"></a><a href="#213">213</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 214" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</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="9 tests cover line 215" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="215"></a><a href="#215">215</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="9 tests cover line 216" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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;</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 217" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingClientSecret&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;&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="218"></a><a href="#218">218</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="219"></a><a href="#219">219</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="220"></a><a href="#220">220</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;auth&nbsp;code&nbsp;hasn't&nbsp;expired</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\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$code</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 222" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">'code'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 220" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$redirectUri</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">'redirect_uri'</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 221" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">is_null</span><span class="keyword">(</span><span class="default">$redirectUri</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 222" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingRedirectUri&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><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;&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">'redirect_uri'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="223"></a><a href="#223">223</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="224"></a><a href="#224">224</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Check&nbsp;redirect&nbsp;URI&nbsp;presented&nbsp;matches&nbsp;redirect&nbsp;URI&nbsp;originally&nbsp;used&nbsp;in&nbsp;authorize&nbsp;request</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 226" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="226"></a><a href="#226">226</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">$code</span><span class="default">-&gt;</span><span class="default">getRedirectUri</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">$redirectUri</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 227" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="227"></a><a href="#227">227</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">'redirect_uri'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="228"></a><a href="#228">228</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="229"></a><a href="#229">229</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 230" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="230"></a><a href="#230">230</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">$code</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="2 tests cover line 231" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="231"></a><a href="#231">231</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">-&gt;</span><span class="default">associateClient</span><span class="keyword">(</span><span class="default">$client</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="225"></a><a href="#225">225</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-small-tests popin" data-title="7 tests cover line 226" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="226"></a><a href="#226">226</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="7 tests cover line 227" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="227"></a><a href="#227">227</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="7 tests cover line 228" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="228"></a><a href="#228">228</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="7 tests cover line 229" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="229"></a><a href="#229">229</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">$redirectUri</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="7 tests cover line 230" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="230"></a><a href="#230">230</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="7 tests cover line 231" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="231"></a><a href="#231">231</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="232"></a><a href="#232">232</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 233" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$authCodeScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$code</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="234"></a><a href="#234">234</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="235"></a><a href="#235">235</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Generate&nbsp;the&nbsp;access&nbsp;token</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 236" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="2 tests cover line 237" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="237"></a><a href="#237">237</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="2 tests cover line 238" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="238"></a><a href="#238">238</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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><td><div align="right"><a name="239"></a><a href="#239">239</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 240" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="240"></a><a href="#240">240</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">$authCodeScopes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$authCodeScope</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 241" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="241"></a><a href="#241">241</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">$session</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$authCodeScope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 242" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="242"></a><a href="#242">242</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 233" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="233"></a><a href="#233">233</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 234" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="234"></a><a href="#234">234</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 235" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidClient&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="235"></a><a href="#235">235</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="236"></a><a href="#236">236</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="237"></a><a href="#237">237</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="238"></a><a href="#238">238</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Validate&nbsp;the&nbsp;auth&nbsp;code</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 239" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="239"></a><a href="#239">239</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$authCode</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">'code'</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="6 tests cover line 240" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="240"></a><a href="#240">240</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">$authCode</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 241" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowMissingCode&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="241"></a><a href="#241">241</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">'code'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="242"></a><a href="#242">242</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="243"></a><a href="#243">243</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 244" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="244"></a><a href="#244">244</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">$session</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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 245" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="245"></a><a href="#245">245</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">$accessToken</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 246" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="246"></a><a href="#246">246</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="247"></a><a href="#247">247</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 248" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="248"></a><a href="#248">248</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="2 tests cover line 249" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="249"></a><a href="#249">249</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">$accessToken</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="2 tests cover line 250" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="250"></a><a href="#250">250</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="251"></a><a href="#251">251</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="252"></a><a href="#252">252</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Associate&nbsp;a&nbsp;refresh&nbsp;token&nbsp;if&nbsp;set</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 253" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="253"></a><a href="#253">253</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">server</span><span class="default">-&gt;</span><span class="default">hasGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</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 254" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="254"></a><a href="#254">254</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">$refreshToken</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="1 test covers line 255" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="255"></a><a href="#255">255</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">$refreshToken</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="1 test covers line 256" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="256"></a><a href="#256">256</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">$refreshToken</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">server</span><span class="default">-&gt;</span><span class="default">getGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</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="1 test covers line 257" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="257"></a><a href="#257">257</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">$refreshToken</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="1 test covers line 258" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="258"></a><a href="#258">258</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="259"></a><a href="#259">259</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="260"></a><a href="#260">260</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;auth&nbsp;code</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 261" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="261"></a><a href="#261">261</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$code</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="262"></a><a href="#262">262</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="263"></a><a href="#263">263</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Save&nbsp;all&nbsp;the&nbsp;things</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 264" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="264"></a><a href="#264">264</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="2 tests cover line 265" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="265"></a><a href="#265">265</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="266"></a><a href="#266">266</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 267" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="267"></a><a href="#267">267</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">isset</span><span class="keyword">(</span><span class="default">$refreshToken</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</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">hasGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</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 268" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="268"></a><a href="#268">268</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">$refreshToken</span><span class="default">-&gt;</span><span class="default">setAccessToken</span><span class="keyword">(</span><span class="default">$accessToken</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 269" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="269"></a><a href="#269">269</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">$refreshToken</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="1 test covers line 270" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="270"></a><a href="#270">270</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="271"></a><a href="#271">271</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 272" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="272"></a><a href="#272">272</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="273"></a><a href="#273">273</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="274"></a><a href="#274">274</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 244" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="244"></a><a href="#244">244</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$code</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">getAuthCodeStorage</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">$authCode</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 245" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="245"></a><a href="#245">245</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">$code</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">AuthCodeEntity</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 246" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowInvalidCode&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="246"></a><a href="#246">246</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">'code'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="247"></a><a href="#247">247</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="248"></a><a href="#248">248</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="249"></a><a href="#249">249</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;auth&nbsp;code&nbsp;hasn't&nbsp;expired</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 250" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="250"></a><a href="#250">250</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">$code</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 251" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowExpiredCode&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="251"></a><a href="#251">251</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">'code'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="252"></a><a href="#252">252</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="253"></a><a href="#253">253</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="254"></a><a href="#254">254</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Check&nbsp;redirect&nbsp;URI&nbsp;presented&nbsp;matches&nbsp;redirect&nbsp;URI&nbsp;originally&nbsp;used&nbsp;in&nbsp;authorize&nbsp;request</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 255" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="255"></a><a href="#255">255</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">$code</span><span class="default">-&gt;</span><span class="default">getRedirectUri</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">$redirectUri</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 256" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowRedirectUriMismatch&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="256"></a><a href="#256">256</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">'redirect_uri'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="257"></a><a href="#257">257</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="258"></a><a href="#258">258</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 259" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="259"></a><a href="#259">259</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">$code</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="2 tests cover line 260" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="260"></a><a href="#260">260</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">-&gt;</span><span class="default">associateClient</span><span class="keyword">(</span><span class="default">$client</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="261"></a><a href="#261">261</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 262" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="262"></a><a href="#262">262</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$authCodeScopes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$code</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="263"></a><a href="#263">263</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="264"></a><a href="#264">264</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Generate&nbsp;the&nbsp;access&nbsp;token</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 265" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="265"></a><a href="#265">265</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="2 tests cover line 266" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="266"></a><a href="#266">266</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="2 tests cover line 267" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="267"></a><a href="#267">267</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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><td><div align="right"><a name="268"></a><a href="#268">268</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 269" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="269"></a><a href="#269">269</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">$authCodeScopes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$authCodeScope</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 270" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="270"></a><a href="#270">270</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">$session</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$authCodeScope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 271" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="271"></a><a href="#271">271</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="272"></a><a href="#272">272</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 273" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="273"></a><a href="#273">273</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">$session</span><span class="default">-&gt;</span><span class="default">getScopes</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$scope</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 274" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="274"></a><a href="#274">274</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">$accessToken</span><span class="default">-&gt;</span><span class="default">associateScope</span><span class="keyword">(</span><span class="default">$scope</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 275" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="275"></a><a href="#275">275</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="276"></a><a href="#276">276</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 277" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="277"></a><a href="#277">277</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="2 tests cover line 278" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="278"></a><a href="#278">278</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">$accessToken</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="2 tests cover line 279" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="279"></a><a href="#279">279</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="280"></a><a href="#280">280</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="281"></a><a href="#281">281</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Associate&nbsp;a&nbsp;refresh&nbsp;token&nbsp;if&nbsp;set</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 282" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="282"></a><a href="#282">282</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">server</span><span class="default">-&gt;</span><span class="default">hasGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</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 283" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="283"></a><a href="#283">283</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">$refreshToken</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="1 test covers line 284" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="284"></a><a href="#284">284</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">$refreshToken</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="1 test covers line 285" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="285"></a><a href="#285">285</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">$refreshToken</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">server</span><span class="default">-&gt;</span><span class="default">getGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</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="1 test covers line 286" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="286"></a><a href="#286">286</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">$refreshToken</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="1 test covers line 287" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="287"></a><a href="#287">287</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="288"></a><a href="#288">288</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="289"></a><a href="#289">289</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;auth&nbsp;code</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 290" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="290"></a><a href="#290">290</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$code</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="291"></a><a href="#291">291</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="292"></a><a href="#292">292</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Save&nbsp;all&nbsp;the&nbsp;things</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 293" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="293"></a><a href="#293">293</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="2 tests cover line 294" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="294"></a><a href="#294">294</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$accessToken</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="295"></a><a href="#295">295</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 296" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="296"></a><a href="#296">296</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">isset</span><span class="keyword">(</span><span class="default">$refreshToken</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</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">hasGrantType</span><span class="keyword">(</span><span class="default">'refresh_token'</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 297" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="297"></a><a href="#297">297</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">$refreshToken</span><span class="default">-&gt;</span><span class="default">setAccessToken</span><span class="keyword">(</span><span class="default">$accessToken</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="1 test covers line 298" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="298"></a><a href="#298">298</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">$refreshToken</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="1 test covers line 299" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="299"></a><a href="#299">299</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="300"></a><a href="#300">300</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 301" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlowWithRefreshToken&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="301"></a><a href="#301">301</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="302"></a><a href="#302">302</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="303"></a><a href="#303">303</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
</tbody>
</table>
@ -474,7 +545,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -259,7 +259,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -131,7 +131,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -361,7 +361,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -58,7 +58,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
<td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
<td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
@ -67,7 +67,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">66&nbsp;/&nbsp;66</div></td>
<td class="success small"><div align="right">69&nbsp;/&nbsp;69</div></td>
</tr>
<tr>
@ -87,8 +87,8 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
<td class="success small">16</td>
<td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
<td class="success small">19</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -96,11 +96,11 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">66&nbsp;/&nbsp;66</div></td>
<td class="success small"><div align="right">69&nbsp;/&nbsp;69</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#52"><abbr title="setRefreshTokenTTL($refreshTokenTTL)">setRefreshTokenTTL</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#60"><abbr title="setRefreshTokenTTL($refreshTokenTTL)">setRefreshTokenTTL</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -121,7 +121,7 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#62"><abbr title="getRefreshTokenTTL()">getRefreshTokenTTL</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#70"><abbr title="getRefreshTokenTTL()">getRefreshTokenTTL</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -142,7 +142,7 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#71"><abbr title="setRefreshTokenRotation($refreshTokenRotate = true)">setRefreshTokenRotation</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#79"><abbr title="setRefreshTokenRotation($refreshTokenRotate = true)">setRefreshTokenRotation</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -163,7 +163,7 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#81"><abbr title="shouldRotateRefreshTokens()">shouldRotateRefreshTokens</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#89"><abbr title="shouldRotateRefreshTokens()">shouldRotateRefreshTokens</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -184,7 +184,7 @@
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#89"><abbr title="completeFlow()">completeFlow</abbr></a></td>
<td class="success" colspan="4">&nbsp;<a href="#99"><abbr title="setRequireClientSecret($required)">setRequireClientSecret</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -193,7 +193,49 @@
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success small">12</td>
<td class="success small">1</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#110"><abbr title="shouldRequireClientSecret()">shouldRequireClientSecret</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success small">1</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
</tr>
<tr>
<td class="success" colspan="4">&nbsp;<a href="#119"><abbr title="completeFlow()">completeFlow</abbr></a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="success small">13</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -254,154 +296,184 @@
<tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</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="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="45"></a><a href="#45">45</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="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Set&nbsp;the&nbsp;TTL&nbsp;of&nbsp;the&nbsp;refresh&nbsp;token</span></td></tr>
<tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;$refreshTokenTTL</span></td></tr>
<tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;void</span></td></tr>
<tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="52"></a><a href="#52">52</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="53"></a><a href="#53">53</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 54" 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="54"></a><a href="#54">54</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 55" 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="55"></a><a href="#55">55</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="56"></a><a href="#56">56</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="57"></a><a href="#57">57</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="58"></a><a href="#58">58</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>
<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="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;int</span></td></tr>
<tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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;</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="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="5 tests cover line 64" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="64"></a><a href="#64">64</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="65"></a><a href="#65">65</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="66"></a><a href="#66">66</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</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="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Set&nbsp;the&nbsp;rotation&nbsp;boolean&nbsp;of&nbsp;the&nbsp;refresh&nbsp;token</span></td></tr>
<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;*&nbsp;@param&nbsp;bool&nbsp;$refreshTokenRotate</span></td></tr>
<tr><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</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">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="72"></a><a href="#72">72</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 73" 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="73"></a><a href="#73">73</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 74" 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="74"></a><a href="#74">74</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="75"></a><a href="#75">75</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="76"></a><a href="#76">76</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="77"></a><a href="#77">77</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>
<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="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;bool</span></td></tr>
<tr><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><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;</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="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="3 tests cover line 83" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="83"></a><a href="#83">83</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="84"></a><a href="#84">84</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="85"></a><a href="#85">85</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="86"></a><a href="#86">86</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="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;{@inheritdoc}</span></td></tr>
<tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Whether&nbsp;to&nbsp;require&nbsp;the&nbsp;client&nbsp;secret&nbsp;when</span></td></tr>
<tr><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;completing&nbsp;the&nbsp;flow.</span></td></tr>
<tr><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;boolean</span></td></tr>
<tr><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="default">$requireClientSecret</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="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="53"></a><a href="#53">53</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="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Set&nbsp;the&nbsp;TTL&nbsp;of&nbsp;the&nbsp;refresh&nbsp;token</span></td></tr>
<tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;int&nbsp;$refreshTokenTTL</span></td></tr>
<tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;void</span></td></tr>
<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-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>
<tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;int</span></td></tr>
<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-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>
<tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Set&nbsp;the&nbsp;rotation&nbsp;boolean&nbsp;of&nbsp;the&nbsp;refresh&nbsp;token</span></td></tr>
<tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;bool&nbsp;$refreshTokenRotate</span></td></tr>
<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-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>
<tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;bool</span></td></tr>
<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">completeFlow</span><span class="keyword">(</span><span class="keyword">)</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-small-tests popin" data-title="10 tests cover line 91" 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;/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="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="10 tests cover line 92" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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 93" 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="93"></a><a href="#93">93</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="94"></a><a href="#94">94</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="95"></a><a href="#95">95</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 96" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</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="9 tests cover line 97" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="97"></a><a href="#97">97</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="9 tests cover line 98" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="98"></a><a href="#98">98</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">$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 99" 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="99"></a><a href="#99">99</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="100"></a><a href="#100">100</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="101"></a><a href="#101">101</a></div></td><td class="codeLine"></td></tr>
<tr><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;&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-small-tests popin" data-title="8 tests cover line 103" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</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="8 tests cover line 104" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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="8 tests cover line 105" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="105"></a><a href="#105">105</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="8 tests cover line 106" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="106"></a><a href="#106">106</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="8 tests cover line 107" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="107"></a><a href="#107">107</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="8 tests cover line 108" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="108"></a><a href="#108">108</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="109"></a><a href="#109">109</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="8 tests cover line 110" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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 111" 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="111"></a><a href="#111">111</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 112" 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="112"></a><a href="#112">112</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="113"></a><a href="#113">113</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 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>
<tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;bool&nbsp;$required&nbsp;True&nbsp;to&nbsp;require&nbsp;client&nbsp;secret&nbsp;during&nbsp;access</span></td></tr>
<tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token&nbsp;request.&nbsp;False&nbsp;if&nbsp;not.&nbsp;Default&nbsp;=&nbsp;true</span></td></tr>
<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-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>
<tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;access&nbsp;token&nbsp;request.&nbsp;False&nbsp;if&nbsp;it&nbsp;isn't.</span></td></tr>
<tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
<tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;bool</span></td></tr>
<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-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 class="covered-by-small-tests popin" data-title="7 tests cover line 115" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</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="7 tests cover line 116" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;&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 117" 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="117"></a><a href="#117">117</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="118"></a><a href="#118">118</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="119"></a><a href="#119">119</a></div></td><td class="codeLine"></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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;Validate&nbsp;refresh&nbsp;token</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 121" 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;/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">$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="122"></a><a href="#122">122</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 123" 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;/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;</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 124" 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="124"></a><a href="#124">124</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="125"></a><a href="#125">125</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="126"></a><a href="#126">126</a></div></td><td class="codeLine"></td></tr>
<tr><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;</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-small-tests popin" data-title="5 tests cover line 128" 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;/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">$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 129" 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="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">InvalidRefreshException</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></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>
<tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;{@inheritdoc}</span></td></tr>
<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-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-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 class="covered-by-small-tests popin" data-title="4 tests cover line 132" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="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="133"></a><a href="#133">133</a></div></td><td class="codeLine"></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;</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-small-tests popin" data-title="4 tests cover line 135" 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;/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;</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="4 tests cover line 136" 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;/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;</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="137"></a><a href="#137">137</a></div></td><td class="codeLine"></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="comment">//&nbsp;Get&nbsp;and&nbsp;validate&nbsp;any&nbsp;requested&nbsp;scopes</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="4 tests cover line 139" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="139"></a><a href="#139">139</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="4 tests cover line 140" 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;/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="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="141"></a><a href="#141">141</a></div></td><td class="codeLine"></td></tr>
<tr><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;</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-small-tests popin" data-title="4 tests cover line 143" 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;/ul&gt;" data-placement="bottom" data-html="true"><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">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="2 tests cover line 144" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="144"></a><a href="#144">144</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="2 tests cover line 145" 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;/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="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="146"></a><a href="#146">146</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="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="comment">//&nbsp;&nbsp;the&nbsp;request&nbsp;doesn't&nbsp;include&nbsp;any&nbsp;new&nbsp;scopes</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="2 tests cover line 148" 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="148"></a><a href="#148">148</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 149" 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="149"></a><a href="#149">149</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 150" 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="150"></a><a href="#150">150</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="151"></a><a href="#151">151</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 152" 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="152"></a><a href="#152">152</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="153"></a><a href="#153">153</a></div></td><td class="codeLine"></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::testCompleteFlowRequestScopes&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="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="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="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-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-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-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-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-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;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-small-tests popin" data-title="3 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::testCompleteFlowRotateRefreshToken&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="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="3 tests cover line 159" 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;/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;</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="3 tests cover line 160" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="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="3 tests cover line 161" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="161"></a><a href="#161">161</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="162"></a><a href="#162">162</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 163" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="163"></a><a href="#163">163</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 164" 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="164"></a><a href="#164">164</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="3 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::testCompleteFlowRotateRefreshToken&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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="167"></a><a href="#167">167</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-small-tests popin" data-title="3 tests cover line 168" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="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="3 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::testCompleteFlowRotateRefreshToken&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">$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="170"></a><a href="#170">170</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 171" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="171"></a><a href="#171">171</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="3 tests cover line 172" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="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="3 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::testCompleteFlowRotateRefreshToken&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="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="174"></a><a href="#174">174</a></div></td><td class="codeLine"></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::testCompleteFlowRequestScopes&lt;/li&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="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">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="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;Expire&nbsp;the&nbsp;old&nbsp;refresh&nbsp;token</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 177" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="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="178"></a><a href="#178">178</a></div></td><td class="codeLine"></td></tr>
<tr><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;</span><span class="comment">//&nbsp;Generate&nbsp;a&nbsp;new&nbsp;refresh&nbsp;token</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 180" 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;/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;</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="3 tests cover line 181" 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;/ul&gt;" data-placement="bottom" data-html="true"><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;</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="3 tests cover line 182" 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;/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="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="3 tests cover line 183" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="183"></a><a href="#183">183</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="3 tests cover line 184" 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;/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">$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="185"></a><a href="#185">185</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 tests cover line 186" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="186"></a><a href="#186">186</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="3 tests cover line 187" 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;/ul&gt;" data-placement="bottom" data-html="true"><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="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 188" 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="188"></a><a href="#188">188</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="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="keyword">}</span></td></tr>
<tr><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="3 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;/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="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="192"></a><a href="#192">192</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="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="keyword">}</span></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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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>
</table>
@ -414,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -112,6 +112,7 @@
</tr>
</thead>
<tbody>
<tr><td><a href="AuthCodeGrant.php.html#88"><abbr title="AuthCodeGrant::setRequireClientSecret">setRequireClientSecret</a></a></td><td class="text-right">0%</td></tr>
</tbody>
</table>
@ -137,7 +138,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>
@ -158,7 +159,7 @@ $(document).ready(function() {
.yAxis.tickFormat(d3.format('d'));
d3.select('#classCoverageDistribution svg')
.datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,5], "Class Coverage"))
.datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,1,4], "Class Coverage"))
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
@ -176,7 +177,7 @@ $(document).ready(function() {
.yAxis.tickFormat(d3.format('d'));
d3.select('#methodCoverageDistribution svg')
.datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,0,0,0,21], "Method Coverage"))
.datum(getCoverageDistributionData([1,0,0,0,0,0,0,0,0,0,0,24], "Method Coverage"))
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
@ -226,7 +227,7 @@ $(document).ready(function() {
chart.yAxis.axisLabel('Cyclomatic Complexity');
d3.select('#classComplexity svg')
.datum(getComplexityData([[100,21,"<a href=\"AbstractGrant.php.html#22\">AbstractGrant<\/a>"],[100,25,"<a href=\"AuthCodeGrant.php.html#26\">AuthCodeGrant<\/a>"],[100,6,"<a href=\"ClientCredentialsGrant.php.html#24\">ClientCredentialsGrant<\/a>"],[100,15,"<a href=\"PasswordGrant.php.html#25\">PasswordGrant<\/a>"],[100,16,"<a href=\"RefreshTokenGrant.php.html#24\">RefreshTokenGrant<\/a>"]], 'Class Complexity'))
.datum(getComplexityData([[100,21,"<a href=\"AbstractGrant.php.html#22\">AbstractGrant<\/a>"],[98.148148148148,28,"<a href=\"AuthCodeGrant.php.html#26\">AuthCodeGrant<\/a>"],[100,6,"<a href=\"ClientCredentialsGrant.php.html#24\">ClientCredentialsGrant<\/a>"],[100,15,"<a href=\"PasswordGrant.php.html#25\">PasswordGrant<\/a>"],[100,19,"<a href=\"RefreshTokenGrant.php.html#24\">RefreshTokenGrant<\/a>"]], 'Class Complexity'))
.transition()
.duration(500)
.call(chart);
@ -250,7 +251,7 @@ $(document).ready(function() {
chart.yAxis.axisLabel('Method Complexity');
d3.select('#methodComplexity svg')
.datum(getComplexityData([[100,1,"<a href=\"AbstractGrant.php.html#62\">AbstractGrant::getIdentifier<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#70\">AbstractGrant::setIdentifier<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#80\">AbstractGrant::getResponseType<\/a>"],[100,2,"<a href=\"AbstractGrant.php.html#90\">AbstractGrant::getAccessTokenTTL<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#106\">AbstractGrant::setAccessTokenTTL<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#116\">AbstractGrant::setAuthorizationServer<\/a>"],[100,11,"<a href=\"AbstractGrant.php.html#135\">AbstractGrant::validateScopes<\/a>"],[100,3,"<a href=\"AbstractGrant.php.html#186\">AbstractGrant::formatScopes<\/a>"],[100,1,"<a href=\"AuthCodeGrant.php.html#70\">AuthCodeGrant::setAuthTokenTTL<\/a>"],[100,8,"<a href=\"AuthCodeGrant.php.html#82\">AuthCodeGrant::checkAuthorizeParams<\/a>"],[100,2,"<a href=\"AuthCodeGrant.php.html#145\">AuthCodeGrant::newAuthorizeRequest<\/a>"],[100,14,"<a href=\"AuthCodeGrant.php.html#177\">AuthCodeGrant::completeFlow<\/a>"],[100,6,"<a href=\"ClientCredentialsGrant.php.html#61\">ClientCredentialsGrant::completeFlow<\/a>"],[100,1,"<a href=\"PasswordGrant.php.html#62\">PasswordGrant::setVerifyCredentialsCallback<\/a>"],[100,3,"<a href=\"PasswordGrant.php.html#74\">PasswordGrant::getVerifyCredentialsCallback<\/a>"],[100,11,"<a href=\"PasswordGrant.php.html#90\">PasswordGrant::completeFlow<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#52\">RefreshTokenGrant::setRefreshTokenTTL<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#62\">RefreshTokenGrant::getRefreshTokenTTL<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#71\">RefreshTokenGrant::setRefreshTokenRotation<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#81\">RefreshTokenGrant::shouldRotateRefreshTokens<\/a>"],[100,12,"<a href=\"RefreshTokenGrant.php.html#89\">RefreshTokenGrant::completeFlow<\/a>"]], 'Method Complexity'))
.datum(getComplexityData([[100,1,"<a href=\"AbstractGrant.php.html#62\">AbstractGrant::getIdentifier<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#70\">AbstractGrant::setIdentifier<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#80\">AbstractGrant::getResponseType<\/a>"],[100,2,"<a href=\"AbstractGrant.php.html#90\">AbstractGrant::getAccessTokenTTL<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#106\">AbstractGrant::setAccessTokenTTL<\/a>"],[100,1,"<a href=\"AbstractGrant.php.html#116\">AbstractGrant::setAuthorizationServer<\/a>"],[100,11,"<a href=\"AbstractGrant.php.html#135\">AbstractGrant::validateScopes<\/a>"],[100,3,"<a href=\"AbstractGrant.php.html#186\">AbstractGrant::formatScopes<\/a>"],[100,1,"<a href=\"AuthCodeGrant.php.html#78\">AuthCodeGrant::setAuthTokenTTL<\/a>"],[0,1,"<a href=\"AuthCodeGrant.php.html#88\">AuthCodeGrant::setRequireClientSecret<\/a>"],[100,1,"<a href=\"AuthCodeGrant.php.html#99\">AuthCodeGrant::shouldRequireClientSecret<\/a>"],[100,8,"<a href=\"AuthCodeGrant.php.html#111\">AuthCodeGrant::checkAuthorizeParams<\/a>"],[100,2,"<a href=\"AuthCodeGrant.php.html#174\">AuthCodeGrant::newAuthorizeRequest<\/a>"],[100,15,"<a href=\"AuthCodeGrant.php.html#206\">AuthCodeGrant::completeFlow<\/a>"],[100,6,"<a href=\"ClientCredentialsGrant.php.html#61\">ClientCredentialsGrant::completeFlow<\/a>"],[100,1,"<a href=\"PasswordGrant.php.html#62\">PasswordGrant::setVerifyCredentialsCallback<\/a>"],[100,3,"<a href=\"PasswordGrant.php.html#74\">PasswordGrant::getVerifyCredentialsCallback<\/a>"],[100,11,"<a href=\"PasswordGrant.php.html#90\">PasswordGrant::completeFlow<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#60\">RefreshTokenGrant::setRefreshTokenTTL<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#70\">RefreshTokenGrant::getRefreshTokenTTL<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#79\">RefreshTokenGrant::setRefreshTokenRotation<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#89\">RefreshTokenGrant::shouldRotateRefreshTokens<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#99\">RefreshTokenGrant::setRequireClientSecret<\/a>"],[100,1,"<a href=\"RefreshTokenGrant.php.html#110\">RefreshTokenGrant::shouldRequireClientSecret<\/a>"],[100,13,"<a href=\"RefreshTokenGrant.php.html#119\">RefreshTokenGrant::completeFlow<\/a>"]], 'Method Complexity'))
.transition()
.duration(500)
.call(chart);

@ -44,29 +44,29 @@
<tr>
<td class="success">Total</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="99.38" aria-valuemin="0" aria-valuemax="100" style="width: 99.38%">
<span class="sr-only">99.38% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">318&nbsp;/&nbsp;318</div></td>
<td class="success small"><div align="right">99.38%</div></td>
<td class="success small"><div align="right">322&nbsp;/&nbsp;324</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="96.00" aria-valuemin="0" aria-valuemax="100" style="width: 96.00%">
<span class="sr-only">96.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">21&nbsp;/&nbsp;21</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="success small"><div align="right">96.00%</div></td>
<td class="success small"><div align="right">24&nbsp;/&nbsp;25</div></td>
<td class="warning big"> <div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="80.00" aria-valuemin="0" aria-valuemax="100" style="width: 80.00%">
<span class="sr-only">80.00% covered (warning)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
<td class="warning small"><div align="right">80.00%</div></td>
<td class="warning small"><div align="right">4&nbsp;/&nbsp;5</div></td>
</tr>
<tr>
@ -100,29 +100,29 @@
<tr>
<td class="success"><span class="glyphicon glyphicon-file"></span> <a href="AuthCodeGrant.php.html">AuthCodeGrant.php</a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="98.15" aria-valuemin="0" aria-valuemax="100" style="width: 98.15%">
<span class="sr-only">98.15% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">105&nbsp;/&nbsp;105</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="success small"><div align="right">98.15%</div></td>
<td class="success small"><div align="right">106&nbsp;/&nbsp;108</div></td>
<td class="warning big"> <div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="83.33" aria-valuemin="0" aria-valuemax="100" style="width: 83.33%">
<span class="sr-only">83.33% covered (warning)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="warning small"><div align="right">83.33%</div></td>
<td class="warning small"><div align="right">5&nbsp;/&nbsp;6</div></td>
<td class="danger big"> <div class="progress">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
<span class="sr-only">0.00% covered (danger)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
<td class="danger small"><div align="right">0.00%</div></td>
<td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
</tr>
<tr>
@ -203,7 +203,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">66&nbsp;/&nbsp;66</div></td>
<td class="success small"><div align="right">69&nbsp;/&nbsp;69</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -211,7 +211,7 @@
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
<td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
@ -234,7 +234,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -380,7 +380,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -209,7 +209,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -141,7 +141,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -142,7 +142,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -113,7 +113,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -106,7 +106,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -121,7 +121,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -101,7 +101,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -144,7 +144,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -99,7 +99,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -137,7 +137,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -213,7 +213,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

File diff suppressed because one or more lines are too long

@ -169,16 +169,16 @@
<tr><td><div align="right"><a name="21"></a><a href="#21">21</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">generateResponse</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="22"></a><a href="#22">22</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="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$return</span><span class="default">&nbsp;</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="9 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</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">'access_token'</span><span class="default">&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getParam</span><span class="keyword">(</span><span class="default">'access_token'</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</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">'token_type'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;&nbsp;</span><span class="default">'Bearer'</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="26"></a><a href="#26">26</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">'expires_in'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getParam</span><span class="keyword">(</span><span class="default">'expires_in'</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 27" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="27"></a><a href="#27">27</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="10 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="24"></a><a href="#24">24</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">'access_token'</span><span class="default">&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getParam</span><span class="keyword">(</span><span class="default">'access_token'</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="25"></a><a href="#25">25</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">'token_type'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;&nbsp;</span><span class="default">'Bearer'</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="26"></a><a href="#26">26</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">'expires_in'</span><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getParam</span><span class="keyword">(</span><span class="default">'expires_in'</span><span class="keyword">)</span><span class="keyword">,</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 27" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="27"></a><a href="#27">27</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="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 29" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="29"></a><a href="#29">29</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">is_null</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getParam</span><span class="keyword">(</span><span class="default">'refresh_token'</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="5 tests cover line 30" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="30"></a><a href="#30">30</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">$return</span><span class="keyword">[</span><span class="default">'refresh_token'</span><span class="keyword">]</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">getParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="5 tests cover line 31" 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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</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 29" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="29"></a><a href="#29">29</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">is_null</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getParam</span><span class="keyword">(</span><span class="default">'refresh_token'</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="6 tests cover line 30" 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="30"></a><a href="#30">30</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">$return</span><span class="keyword">[</span><span class="default">'refresh_token'</span><span class="keyword">]</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">getParam</span><span class="keyword">(</span><span class="default">'refresh_token'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="6 tests cover line 31" 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="31"></a><a href="#31">31</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="32"></a><a href="#32">32</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="9 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</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">$return</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="10 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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="33"></a><a href="#33">33</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">$return</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="34"></a><a href="#34">34</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="35"></a><a href="#35">35</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -211,7 +211,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -349,7 +349,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -140,7 +140,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -143,7 +143,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -178,7 +178,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -146,20 +146,20 @@
<tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="19"></a><a href="#19">19</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">generate</span><span class="keyword">(</span><span class="default">$len</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">40</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="20"></a><a href="#20">20</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="12 tests cover line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$stripped</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$stripped</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">do</span><span class="default">&nbsp;</span><span class="keyword">{</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</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">$bytes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">openssl_random_pseudo_bytes</span><span class="keyword">(</span><span class="default">$len</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$strong</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</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">$bytes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">openssl_random_pseudo_bytes</span><span class="keyword">(</span><span class="default">$len</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$strong</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="25"></a><a href="#25">25</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;We&nbsp;want&nbsp;to&nbsp;stop&nbsp;execution&nbsp;if&nbsp;the&nbsp;key&nbsp;fails&nbsp;because,&nbsp;well,&nbsp;that&nbsp;is&nbsp;bad.</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="26"></a><a href="#26">26</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$bytes</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$strong</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="13 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="26"></a><a href="#26">26</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">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$bytes</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$strong</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><td><div align="right"><a name="27"></a><a href="#27">27</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="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
<tr><td><div align="right"><a name="28"></a><a href="#28">28</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">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">'Error&nbsp;Generating&nbsp;Key'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="29"></a><a href="#29">29</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="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
<tr class="warning"><td><div align="right"><a name="30"></a><a href="#30">30</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="12 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</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">$stripped</span><span class="default">&nbsp;</span><span class="default">.=</span><span class="default">&nbsp;</span><span class="default">str_replace</span><span class="keyword">(</span><span class="keyword">[</span><span class="default">'/'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">'+'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">'='</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">base64_encode</span><span class="keyword">(</span><span class="default">$bytes</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</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">while</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">strlen</span><span class="keyword">(</span><span class="default">$stripped</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">&lt;</span><span class="default">&nbsp;</span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</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">$stripped</span><span class="default">&nbsp;</span><span class="default">.=</span><span class="default">&nbsp;</span><span class="default">str_replace</span><span class="keyword">(</span><span class="keyword">[</span><span class="default">'/'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">'+'</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">'='</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">base64_encode</span><span class="keyword">(</span><span class="default">$bytes</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</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">while</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">strlen</span><span class="keyword">(</span><span class="default">$stripped</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">&lt;</span><span class="default">&nbsp;</span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="12 tests cover line 34" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="34"></a><a href="#34">34</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">substr</span><span class="keyword">(</span><span class="default">$stripped</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 34" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="34"></a><a href="#34">34</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">substr</span><span class="keyword">(</span><span class="default">$stripped</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="35"></a><a href="#35">35</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="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
@ -174,7 +174,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -97,7 +97,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -138,7 +138,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -123,7 +123,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -171,7 +171,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -199,7 +199,7 @@
<tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="31"></a><a href="#31">31</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">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">generate</span><span class="keyword">(</span><span class="default">$len</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">40</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="32"></a><a href="#32">32</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="13 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerateWithDifferentAlgorithm&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</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">self</span><span class="default">::</span><span class="default">getAlgorithm</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">generate</span><span class="keyword">(</span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="14 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerateWithDifferentAlgorithm&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</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">self</span><span class="default">::</span><span class="default">getAlgorithm</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">generate</span><span class="keyword">(</span><span class="default">$len</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="34"></a><a href="#34">34</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="35"></a><a href="#35">35</a></div></td><td class="codeLine"></td></tr>
<tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
@ -215,11 +215,11 @@
<tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span></td></tr>
<tr><td><div align="right"><a name="47"></a><a href="#47">47</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">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getAlgorithm</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
<tr><td><div align="right"><a name="48"></a><a href="#48">48</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="13 tests cover line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerateWithDifferentAlgorithm&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="49"></a><a href="#49">49</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">self</span><span class="default">::</span><span class="default">$algorithm</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="14 tests cover line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerateWithDifferentAlgorithm&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="49"></a><a href="#49">49</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">self</span><span class="default">::</span><span class="default">$algorithm</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 50" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="50"></a><a href="#50">50</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">self</span><span class="default">::</span><span class="default">$algorithm</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">DefaultAlgorithm</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 51" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="51"></a><a href="#51">51</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="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr>
<tr class="covered-by-small-tests popin" data-title="13 tests cover line 53" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerateWithDifferentAlgorithm&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="53"></a><a href="#53">53</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">self</span><span class="default">::</span><span class="default">$algorithm</span><span class="keyword">;</span></td></tr>
<tr class="covered-by-small-tests popin" data-title="14 tests cover line 53" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testNewAuthoriseRequest&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\AuthCodeGrantTest::testCompleteFlow&lt;/li&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\ClientCredentialsGrantTest::testCompleteFlowNoScopes&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\ClientCredentialsGrantTest::testCompleteFlow&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\Grant\PasswordGrantTest::testCompleteFlow&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;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\TokenType\MacTest::testGenerateResponse&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerate&lt;/li&gt;&lt;li class=&quot;covered-by-small-tests&quot;&gt;LeagueTests\util\SecureKeyTest::testGenerateWithDifferentAlgorithm&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="53"></a><a href="#53">53</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">self</span><span class="default">::</span><span class="default">$algorithm</span><span class="keyword">;</span></td></tr>
<tr class="warning"><td><div align="right"><a name="54"></a><a href="#54">54</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="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
@ -234,7 +234,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 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
<a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
</footer>

@ -137,7 +137,7 @@
<footer>
<hr/>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

@ -165,7 +165,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>

File diff suppressed because one or more lines are too long

@ -43,29 +43,29 @@
<tr>
<td class="success">Total</td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="98.34" aria-valuemin="0" aria-valuemax="100" style="width: 98.34%">
<span class="sr-only">98.34% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="98.10" aria-valuemin="0" aria-valuemax="100" style="width: 98.10%">
<span class="sr-only">98.10% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">98.34%</div></td>
<td class="success small"><div align="right">769&nbsp;/&nbsp;782</div></td>
<td class="success small"><div align="right">98.10%</div></td>
<td class="success small"><div align="right">773&nbsp;/&nbsp;788</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="95.54" aria-valuemin="0" aria-valuemax="100" style="width: 95.54%">
<span class="sr-only">95.54% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="95.03" aria-valuemin="0" aria-valuemax="100" style="width: 95.03%">
<span class="sr-only">95.03% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">95.54%</div></td>
<td class="success small"><div align="right">150&nbsp;/&nbsp;157</div></td>
<td class="success small"><div align="right">95.03%</div></td>
<td class="success small"><div align="right">153&nbsp;/&nbsp;161</div></td>
<td class="warning big"> <div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.21" aria-valuemin="0" aria-valuemax="100" style="width: 84.21%">
<span class="sr-only">84.21% covered (warning)</span>
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.58" aria-valuemin="0" aria-valuemax="100" style="width: 81.58%">
<span class="sr-only">81.58% covered (warning)</span>
</div>
</div>
</td>
<td class="warning small"><div align="right">84.21%</div></td>
<td class="warning small"><div align="right">32&nbsp;/&nbsp;38</div></td>
<td class="warning small"><div align="right">81.58%</div></td>
<td class="warning small"><div align="right">31&nbsp;/&nbsp;38</div></td>
</tr>
<tr>
@ -155,29 +155,29 @@
<tr>
<td class="success"><span class="glyphicon glyphicon-folder-open"></span> <a href="Grant/index.html">Grant</a></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="99.38" aria-valuemin="0" aria-valuemax="100" style="width: 99.38%">
<span class="sr-only">99.38% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">318&nbsp;/&nbsp;318</div></td>
<td class="success small"><div align="right">99.38%</div></td>
<td class="success small"><div align="right">322&nbsp;/&nbsp;324</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="96.00" aria-valuemin="0" aria-valuemax="100" style="width: 96.00%">
<span class="sr-only">96.00% covered (success)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">21&nbsp;/&nbsp;21</div></td>
<td class="success big"> <div class="progress">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
<span class="sr-only">100.00% covered (success)</span>
<td class="success small"><div align="right">96.00%</div></td>
<td class="success small"><div align="right">24&nbsp;/&nbsp;25</div></td>
<td class="warning big"> <div class="progress">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="80.00" aria-valuemin="0" aria-valuemax="100" style="width: 80.00%">
<span class="sr-only">80.00% covered (warning)</span>
</div>
</div>
</td>
<td class="success small"><div align="right">100.00%</div></td>
<td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
<td class="warning small"><div align="right">80.00%</div></td>
<td class="warning small"><div align="right">4&nbsp;/&nbsp;5</div></td>
</tr>
<tr>
@ -360,7 +360,7 @@
<span class="success"><strong>High</strong>: 90% to 100%</span>
</p>
<p>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:28:55 UTC 2015.</small>
<small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.2.2</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 Sep 4 7:30:20 UTC 2015.</small>
</p>
</footer>
</div>