createMock(Database::class); $database->expects($this->once())->method('insert')->willReturnMap([ ['userd', ['username' => 'test'], 0, true], ]); $repo = new UserDeletedRepository($database); $repo->insertByUsername('test'); } public function testInsertByUsernameThrowsException(): void { $database = $this->createMock(Database::class); $database->expects($this->exactly(2))->method('throwExceptionsOnErrors'); $database->expects($this->once())->method('insert')->willThrowException( new DatabaseException('An error occured.', 0, 'SQL query') ); $repo = new UserDeletedRepository($database); $this->expectException(DatabaseException::class); $repo->insertByUsername('test'); } public function testExistsByUsernameReturnsTrue(): void { $database = $this->createStub(Database::class); $database->method('exists')->willReturnMap([ ['userd', ['username' => 'test'], true], ]); $repo = new UserDeletedRepository($database); $this->assertTrue($repo->existsByUsername('test')); } public function testExistsByUsernameReturnsFalse(): void { $database = $this->createStub(Database::class); $database->method('exists')->willReturnMap([ ['userd', ['username' => 'test'], false], ]); $repo = new UserDeletedRepository($database); $this->assertFalse($repo->existsByUsername('test')); } }