1515 */
1616namespace SimpleSAML \Test \Module \oidc \unit \Repositories ;
1717
18+ use DateTimeImmutable ;
1819use Exception ;
1920use PHPUnit \Framework \MockObject \MockObject ;
2021use PHPUnit \Framework \TestCase ;
2122use SimpleSAML \Configuration ;
23+ use SimpleSAML \Module \oidc \Codebooks \DateFormatsEnum ;
2224use SimpleSAML \Module \oidc \Entities \AccessTokenEntity ;
2325use SimpleSAML \Module \oidc \Entities \Interfaces \ClientEntityInterface ;
2426use SimpleSAML \Module \oidc \Factories \Entities \AccessTokenEntityFactory ;
2527use SimpleSAML \Module \oidc \Factories \Entities \ClientEntityFactory ;
28+ use SimpleSAML \Module \oidc \Helpers ;
2629use SimpleSAML \Module \oidc \ModuleConfig ;
2730use SimpleSAML \Module \oidc \Repositories \AccessTokenRepository ;
2831use SimpleSAML \Module \oidc \Repositories \ClientRepository ;
@@ -44,6 +47,8 @@ class AccessTokenRepositoryTest extends TestCase
4447 protected MockObject $ clientEntityFactoryMock ;
4548 protected MockObject $ accessTokenEntityFactoryMock ;
4649 protected MockObject $ accessTokenEntityMock ;
50+ protected MockObject $ helpersMock ;
51+ protected MockObject $ dateTimeHelperMock ;
4752
4853 protected static bool $ dbSeeded = false ;
4954 protected ClientEntityInterface $ clientEntity ;
@@ -93,10 +98,15 @@ protected function setUp(): void
9398 'auth_code_id ' => 'authCode123 ' ,
9499 ];
95100
101+ $ this ->helpersMock = $ this ->createMock (Helpers::class);
102+ $ this ->dateTimeHelperMock = $ this ->createMock (Helpers \DateTime::class);
103+ $ this ->helpersMock ->method ('dateTime ' )->willReturn ($ this ->dateTimeHelperMock );
104+
96105 $ this ->repository = new AccessTokenRepository (
97106 $ this ->moduleConfigMock ,
98107 $ this ->clientRepositoryMock ,
99108 $ this ->accessTokenEntityFactoryMock ,
109+ $ this ->helpersMock ,
100110 );
101111 }
102112
@@ -178,6 +188,12 @@ public function testErrorCheckIsRevokedInvalidToken(): void
178188 */
179189 public function testRemoveExpired (): void
180190 {
191+ $ dateTimeMock = $ this ->createMock (DateTimeImmutable::class);
192+ $ dateTimeMock ->expects ($ this ->once ())->method ('format ' )
193+ ->willReturn (date (DateFormatsEnum::DB_DATETIME ->value ));
194+ $ this ->dateTimeHelperMock ->expects ($ this ->once ())->method ('getUtc ' )
195+ ->willReturn ($ dateTimeMock );
196+
181197 $ this ->repository ->removeExpired ();
182198 $ notFoundAccessToken = $ this ->repository ->findById (self ::ACCESS_TOKEN_ID );
183199
0 commit comments