1a4500ed5SGreg Roach<?php 23976b470SGreg Roach 3a4500ed5SGreg Roach/** 4a4500ed5SGreg Roach * webtrees: online genealogy 5*d11be702SGreg Roach * Copyright (C) 2023 webtrees development team 6a4500ed5SGreg Roach * This program is free software: you can redistribute it and/or modify 7a4500ed5SGreg Roach * it under the terms of the GNU General Public License as published by 8a4500ed5SGreg Roach * the Free Software Foundation, either version 3 of the License, or 9a4500ed5SGreg Roach * (at your option) any later version. 10a4500ed5SGreg Roach * This program is distributed in the hope that it will be useful, 11a4500ed5SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 12a4500ed5SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13a4500ed5SGreg Roach * GNU General Public License for more details. 14a4500ed5SGreg Roach * You should have received a copy of the GNU General Public License 1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>. 16a4500ed5SGreg Roach */ 17fcfa147eSGreg Roach 18e7f56f2aSGreg Roachdeclare(strict_types=1); 19e7f56f2aSGreg Roach 20a4500ed5SGreg Roachnamespace Fisharebest\Webtrees\Census; 21a4500ed5SGreg Roach 22ddf438a5SGreg Roachuse Fisharebest\Webtrees\Family; 23ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual; 2452348eb8SGreg Roachuse Fisharebest\Webtrees\Place; 253cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase; 26392561bbSGreg Roachuse Illuminate\Support\Collection; 27a4500ed5SGreg Roach 28a4500ed5SGreg Roach/** 29a4500ed5SGreg Roach * Test harness for the class CensusColumnFatherBirthPlaceSimple 30a4500ed5SGreg Roach */ 313cfcc809SGreg Roachclass CensusColumnFatherBirthPlaceSimpleTest extends TestCase 32c1010edaSGreg Roach{ 33a4500ed5SGreg Roach /** 3416d0b7f7SRico Sonntag * Get place mock. 3516d0b7f7SRico Sonntag * 3616d0b7f7SRico Sonntag * @param string $place Gedcom Place 3716d0b7f7SRico Sonntag * 3852348eb8SGreg Roach * @return Place 3916d0b7f7SRico Sonntag */ 405e933c21SGreg Roach private function getPlaceMock(string $place): Place 41c1010edaSGreg Roach { 4216d0b7f7SRico Sonntag $placeParts = explode(', ', $place); 4316d0b7f7SRico Sonntag 44cd94ca66SGreg Roach $placeMock = $this->createMock(Place::class); 450ecdbde6SGreg Roach $placeMock->method('gedcomName')->willReturn($place); 460ecdbde6SGreg Roach $placeMock->method('lastParts')->willReturn(new Collection($placeParts)); 4716d0b7f7SRico Sonntag 4816d0b7f7SRico Sonntag return $placeMock; 4916d0b7f7SRico Sonntag } 5016d0b7f7SRico Sonntag 5116d0b7f7SRico Sonntag /** 5215d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnFatherBirthPlaceSimple 5315d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 5452348eb8SGreg Roach * 5552348eb8SGreg Roach * @return void 56a4500ed5SGreg Roach */ 579b802b22SGreg Roach public function testKnownStateAndTown(): void 58c1010edaSGreg Roach { 59cd94ca66SGreg Roach $father = $this->createMock(Individual::class); 600ecdbde6SGreg Roach $father->method('getBirthPlace')->willReturn($this->getPlaceMock('Miami, Florida, United States')); 61a4500ed5SGreg Roach 62cd94ca66SGreg Roach $family = $this->createMock(Family::class); 630ecdbde6SGreg Roach $family->method('husband')->willReturn($father); 64a4500ed5SGreg Roach 65cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 661afbbc50SGreg Roach $individual->method('childFamilies')->willReturn(new Collection([$family])); 67a4500ed5SGreg Roach 68cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 690ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('United States'); 70a4500ed5SGreg Roach 71a4500ed5SGreg Roach $column = new CensusColumnFatherBirthPlaceSimple($census, '', ''); 72a4500ed5SGreg Roach 735e933c21SGreg Roach self::assertSame('Florida', $column->generate($individual, $individual)); 74a4500ed5SGreg Roach } 75a4500ed5SGreg Roach} 76