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\Individual; 2352348eb8SGreg Roachuse Fisharebest\Webtrees\Place; 243cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase; 25a4500ed5SGreg Roach 26a4500ed5SGreg Roach/** 27a4500ed5SGreg Roach * Test harness for the class CensusColumnBirthPlaceSimple 28a4500ed5SGreg Roach */ 293cfcc809SGreg Roachclass CensusColumnBirthPlaceSimpleTest extends TestCase 30c1010edaSGreg Roach{ 31a4500ed5SGreg Roach /** 3216d0b7f7SRico Sonntag * Get place mock. 3316d0b7f7SRico Sonntag * 3416d0b7f7SRico Sonntag * @param string $place Gedcom Place 3516d0b7f7SRico Sonntag * 3652348eb8SGreg Roach * @return Place 3716d0b7f7SRico Sonntag */ 385e933c21SGreg Roach private function getPlaceMock(string $place): Place 39c1010edaSGreg Roach { 40cd94ca66SGreg Roach $placeMock = $this->createMock(Place::class); 410ecdbde6SGreg Roach $placeMock->method('gedcomName')->willReturn($place); 4216d0b7f7SRico Sonntag 4316d0b7f7SRico Sonntag return $placeMock; 4416d0b7f7SRico Sonntag } 4516d0b7f7SRico Sonntag 4616d0b7f7SRico Sonntag /** 4715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 4815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 4952348eb8SGreg Roach * 5052348eb8SGreg Roach * @return void 51a4500ed5SGreg Roach */ 529b802b22SGreg Roach public function testForeignCountry(): void 53c1010edaSGreg Roach { 54cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 550ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Westminster, London, England')); 56a4500ed5SGreg Roach 57cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 580ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('United States'); 59a4500ed5SGreg Roach 60a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 61a4500ed5SGreg Roach 625e933c21SGreg Roach self::assertSame('England', $column->generate($individual, $individual)); 63a4500ed5SGreg Roach } 64a4500ed5SGreg Roach 65a4500ed5SGreg Roach /** 6615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 6715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 6852348eb8SGreg Roach * 6952348eb8SGreg Roach * @return void 70a4500ed5SGreg Roach */ 719b802b22SGreg Roach public function testJustCountry(): void 72c1010edaSGreg Roach { 73cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 740ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('United States')); 75a4500ed5SGreg Roach 76cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 770ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('United States'); 78a4500ed5SGreg Roach 79a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 80a4500ed5SGreg Roach 815e933c21SGreg Roach self::assertSame('', $column->generate($individual, $individual)); 82a4500ed5SGreg Roach } 83a4500ed5SGreg Roach 84a4500ed5SGreg Roach /** 8515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 8615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 8752348eb8SGreg Roach * 8852348eb8SGreg Roach * @return void 89a4500ed5SGreg Roach */ 909b802b22SGreg Roach public function testKnownState(): void 91c1010edaSGreg Roach { 92cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 930ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Maryland, United States')); 94a4500ed5SGreg Roach 95cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 960ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('United States'); 97a4500ed5SGreg Roach 98a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 99a4500ed5SGreg Roach 1005e933c21SGreg Roach self::assertSame('Maryland', $column->generate($individual, $individual)); 101a4500ed5SGreg Roach } 102a4500ed5SGreg Roach 103a4500ed5SGreg Roach /** 10415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 10515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 10652348eb8SGreg Roach * 10752348eb8SGreg Roach * @return void 108a4500ed5SGreg Roach */ 1099b802b22SGreg Roach public function testKnownStateAndTown(): void 110c1010edaSGreg Roach { 111cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 1120ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Miami, Florida, United States')); 113a4500ed5SGreg Roach 114cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 1150ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('United States'); 116a4500ed5SGreg Roach 117a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 118a4500ed5SGreg Roach 1195e933c21SGreg Roach self::assertSame('Florida', $column->generate($individual, $individual)); 120a4500ed5SGreg Roach } 121a4500ed5SGreg Roach} 122