diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2025-02-13 21:55:08 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2025-02-13 21:55:08 +0000 |
commit | 1cf9f2a78aeca3fdd16c534e0e8d2099ed09053d (patch) | |
tree | 270390ddfde1639bef50b6212689e1364e0c68d4 /tests/phpunit/unit | |
parent | d6b62f3af597953a44c5f919e21dca0b27894c12 (diff) | |
parent | 95c7ccb675acf6485ef61cf9573ac9dd19d06f3e (diff) | |
download | mediawikicore-1cf9f2a78aeca3fdd16c534e0e8d2099ed09053d.tar.gz mediawikicore-1cf9f2a78aeca3fdd16c534e0e8d2099ed09053d.zip |
Merge "user: Use TS_MW to compare timestamps in UserRegistrationProvider"
Diffstat (limited to 'tests/phpunit/unit')
-rw-r--r-- | tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php b/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php index 2e6106684ac0..2b0d2748114d 100644 --- a/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php +++ b/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php @@ -76,4 +76,53 @@ class UserRegistrationLookupTest extends MediaWikiUnitTestCase { ); $lookup->getRegistration( $userIdentity, 'invalid' ); } + + /** @dataProvider provideGetFirstRegistration */ + public function testGetFirstRegistration( $valueLocal, $valueFoo, $expected ) { + $userIdentity = new UserIdentityValue( 123, 'Admin' ); + $userRegistrationProviderMockLocal = $this->createMock( IUserRegistrationProvider::class ); + $userRegistrationProviderMockLocal->expects( $this->once() ) + ->method( 'fetchRegistration' ) + ->with( $userIdentity ) + ->willReturn( $valueLocal ); + $userRegistrationProviderMockFoo = $this->createMock( IUserRegistrationProvider::class ); + $userRegistrationProviderMockFoo->expects( $this->once() ) + ->method( 'fetchRegistration' ) + ->with( $userIdentity ) + ->willReturn( $valueFoo ); + $objectFactoryMock = $this->createMock( ObjectFactory::class ); + $objectFactoryMock->expects( $this->exactly( 2 ) ) + ->method( 'createObject' ) + ->willReturnCallback( static function ( $arg ) use ( $userRegistrationProviderMockLocal, $userRegistrationProviderMockFoo ) { + if ( $arg === [ 'class' => LocalUserRegistrationProvider::class ] ) { + return $userRegistrationProviderMockLocal; + } + return $userRegistrationProviderMockFoo; + } ); + + $lookup = new UserRegistrationLookup( + new ServiceOptions( UserRegistrationLookup::CONSTRUCTOR_OPTIONS, [ + MainConfigNames::UserRegistrationProviders => [ + 'local' => [ + 'class' => LocalUserRegistrationProvider::class + ], + 'foo' => [ + 'class' => 'FooUserRegistrationLookup' + ], + ] + ] ), + $objectFactoryMock + ); + + $this->assertSame( $expected, $lookup->getFirstRegistration( $userIdentity ) ); + } + + public static function provideGetFirstRegistration() { + return [ + [ '20200101000000', '20190101000000', '20190101000000' ], + [ null, false, null ], + [ null, '20190101000000', '20190101000000' ], + [ '20200101000000', null, '20200101000000' ], + ]; + } } |