|
|
|
@ -152,7 +152,57 @@ class UserStatusMapperTest extends TestCase {
|
|
|
|
|
$this->mapper->insert($userStatus2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testClearOlderThan(): void {
|
|
|
|
|
/**
|
|
|
|
|
* @param string $status
|
|
|
|
|
* @param bool $isUserDefined
|
|
|
|
|
* @param int $timestamp
|
|
|
|
|
* @param bool $expectsClean
|
|
|
|
|
*
|
|
|
|
|
* @dataProvider clearStatusesOlderThanDataProvider
|
|
|
|
|
*/
|
|
|
|
|
public function testClearStatusesOlderThan(string $status, bool $isUserDefined, int $timestamp, bool $expectsClean): void {
|
|
|
|
|
$oldStatus = UserStatus::fromParams([
|
|
|
|
|
'userId' => 'john.doe',
|
|
|
|
|
'status' => $status,
|
|
|
|
|
'isUserDefined' => $isUserDefined,
|
|
|
|
|
'statusTimestamp' => $timestamp,
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$this->mapper->insert($oldStatus);
|
|
|
|
|
|
|
|
|
|
$this->mapper->clearStatusesOlderThan(5000, 8000);
|
|
|
|
|
|
|
|
|
|
$updatedStatus = $this->mapper->findAll()[0];
|
|
|
|
|
|
|
|
|
|
if ($expectsClean) {
|
|
|
|
|
$this->assertEquals('offline', $updatedStatus->getStatus());
|
|
|
|
|
$this->assertFalse($updatedStatus->getIsUserDefined());
|
|
|
|
|
$this->assertEquals(8000, $updatedStatus->getStatusTimestamp());
|
|
|
|
|
} else {
|
|
|
|
|
$this->assertEquals($status, $updatedStatus->getStatus());
|
|
|
|
|
$this->assertEquals($isUserDefined, $updatedStatus->getIsUserDefined());
|
|
|
|
|
$this->assertEquals($timestamp, $updatedStatus->getStatusTimestamp());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function clearStatusesOlderThanDataProvider(): array {
|
|
|
|
|
return [
|
|
|
|
|
['online', true, 6000, false],
|
|
|
|
|
['online', true, 4000, true],
|
|
|
|
|
['online', false, 6000, false],
|
|
|
|
|
['online', false, 4000, true],
|
|
|
|
|
['away', true, 6000, false],
|
|
|
|
|
['away', true, 4000, false],
|
|
|
|
|
['away', false, 6000, false],
|
|
|
|
|
['away', false, 4000, true],
|
|
|
|
|
['dnd', true, 6000, false],
|
|
|
|
|
['dnd', true, 4000, false],
|
|
|
|
|
['invisible', true, 6000, false],
|
|
|
|
|
['invisible', true, 4000, false],
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testClearMessagesOlderThan(): void {
|
|
|
|
|
$this->insertSampleStatuses();
|
|
|
|
|
|
|
|
|
|
$this->mapper->clearMessagesOlderThan(55000);
|
|
|
|
|