15062b1caSJonathan Jaubart<?php 25062b1caSJonathan Jaubart 35062b1caSJonathan Jaubart/** 45062b1caSJonathan Jaubart * webtrees: online genealogy 5d11be702SGreg Roach * Copyright (C) 2023 webtrees development team 65062b1caSJonathan Jaubart * This program is free software: you can redistribute it and/or modify 75062b1caSJonathan Jaubart * it under the terms of the GNU General Public License as published by 85062b1caSJonathan Jaubart * the Free Software Foundation, either version 3 of the License, or 95062b1caSJonathan Jaubart * (at your option) any later version. 105062b1caSJonathan Jaubart * This program is distributed in the hope that it will be useful, 115062b1caSJonathan Jaubart * but WITHOUT ANY WARRANTY; without even the implied warranty of 125062b1caSJonathan Jaubart * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 135062b1caSJonathan Jaubart * GNU General Public License for more details. 145062b1caSJonathan Jaubart * You should have received a copy of the GNU General Public License 155062b1caSJonathan Jaubart * along with this program. If not, see <https://www.gnu.org/licenses/>. 165062b1caSJonathan Jaubart */ 175062b1caSJonathan Jaubart 185062b1caSJonathan Jaubartdeclare(strict_types=1); 195062b1caSJonathan Jaubart 205062b1caSJonathan Jaubartnamespace Fisharebest\Webtrees\Http\RequestHandlers; 215062b1caSJonathan Jaubart 225062b1caSJonathan Jaubartuse Fig\Http\Message\RequestMethodInterface; 235062b1caSJonathan Jaubartuse Fig\Http\Message\StatusCodeInterface; 245062b1caSJonathan Jaubartuse Fisharebest\Webtrees\Individual; 25*202c018bSGreg Roachuse Fisharebest\Webtrees\Module\FixSearchAndReplace; 265062b1caSJonathan Jaubartuse Fisharebest\Webtrees\Services\DataFixService; 275062b1caSJonathan Jaubartuse Fisharebest\Webtrees\Services\DatatablesService; 282c685d76SGreg Roachuse Fisharebest\Webtrees\Services\GedcomImportService; 295062b1caSJonathan Jaubartuse Fisharebest\Webtrees\Services\ModuleService; 305062b1caSJonathan Jaubartuse Fisharebest\Webtrees\Services\TreeService; 312c685d76SGreg Roachuse Fisharebest\Webtrees\TestCase; 32*202c018bSGreg Roachuse PHPUnit\Framework\Attributes\CoversClass; 335062b1caSJonathan Jaubart 34*202c018bSGreg Roach#[CoversClass(DataFixData::class)] 35*202c018bSGreg Roach#[CoversClass(FixSearchAndReplace::class)] 365062b1caSJonathan Jaubartclass DataFixDataTest extends TestCase 375062b1caSJonathan Jaubart{ 38cd94ca66SGreg Roach protected static bool $uses_database = true; 395062b1caSJonathan Jaubart 405062b1caSJonathan Jaubart /** 415062b1caSJonathan Jaubart * Test request handler 425062b1caSJonathan Jaubart */ 435062b1caSJonathan Jaubart public function testHandlerForFixSearchAndReplace(): void 445062b1caSJonathan Jaubart { 452c685d76SGreg Roach $gedcom_import_service = new GedcomImportService(); 462c685d76SGreg Roach $tree_service = new TreeService($gedcom_import_service); 475062b1caSJonathan Jaubart $tree = $tree_service->create('name', 'title'); 485062b1caSJonathan Jaubart 495062b1caSJonathan Jaubart $data_fix_service = new DataFixService(); 505062b1caSJonathan Jaubart $datatables_service = new DatatablesService(); 515062b1caSJonathan Jaubart $module_service = new ModuleService(); 525062b1caSJonathan Jaubart 535062b1caSJonathan Jaubart $handler = new DataFixData($data_fix_service, $datatables_service, $module_service); 545062b1caSJonathan Jaubart 555062b1caSJonathan Jaubart $request = self::createRequest(RequestMethodInterface::METHOD_GET, [ 565062b1caSJonathan Jaubart 'type' => Individual::RECORD_TYPE, 57748dbe15SGreg Roach 'search-for' => 'DOE', 585062b1caSJonathan Jaubart 'method' => 'exact', 595062b1caSJonathan Jaubart 'case' => '' 605062b1caSJonathan Jaubart ]) 615062b1caSJonathan Jaubart ->withAttribute('tree', $tree) 625062b1caSJonathan Jaubart ->withAttribute('data_fix', 'fix-search-and-replace'); 635062b1caSJonathan Jaubart 645062b1caSJonathan Jaubart $response = $handler->handle($request); 655062b1caSJonathan Jaubart 665062b1caSJonathan Jaubart self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); 675062b1caSJonathan Jaubart } 685062b1caSJonathan Jaubart} 69