1ef21b467SGreg Roach<?php 23976b470SGreg Roach 3ef21b467SGreg Roach/** 4ef21b467SGreg Roach * webtrees: online genealogy 5d11be702SGreg Roach * Copyright (C) 2023 webtrees development team 6ef21b467SGreg Roach * This program is free software: you can redistribute it and/or modify 7ef21b467SGreg Roach * it under the terms of the GNU General Public License as published by 8ef21b467SGreg Roach * the Free Software Foundation, either version 3 of the License, or 9ef21b467SGreg Roach * (at your option) any later version. 10ef21b467SGreg Roach * This program is distributed in the hope that it will be useful, 11ef21b467SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 12ef21b467SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13ef21b467SGreg Roach * GNU General Public License for more details. 14ef21b467SGreg 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/>. 16ef21b467SGreg Roach */ 17fcfa147eSGreg Roach 18e7f56f2aSGreg Roachdeclare(strict_types=1); 19e7f56f2aSGreg Roach 20ef21b467SGreg Roachnamespace Fisharebest\Webtrees\Census; 21ef21b467SGreg Roach 22ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual; 2352348eb8SGreg Roachuse Fisharebest\Webtrees\Place; 243cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase; 25*202c018bSGreg Roachuse PHPUnit\Framework\Attributes\CoversClass; 26ef21b467SGreg Roach 27*202c018bSGreg Roach#[CoversClass(CensusColumnBirthPlace::class)] 28*202c018bSGreg Roach#[CoversClass(AbstractCensusColumn::class)] 293cfcc809SGreg Roachclass CensusColumnBirthPlaceTest extends TestCase 30c1010edaSGreg Roach{ 315e933c21SGreg Roach private function getPlaceMock(string $place): Place 32c1010edaSGreg Roach { 33cd94ca66SGreg Roach $placeMock = $this->createMock(Place::class); 340ecdbde6SGreg Roach $placeMock->method('gedcomName')->willReturn($place); 3516d0b7f7SRico Sonntag 3616d0b7f7SRico Sonntag return $placeMock; 3716d0b7f7SRico Sonntag } 3816d0b7f7SRico Sonntag 399b802b22SGreg Roach public function testPlaceCountry(): void 40c1010edaSGreg Roach { 41cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 420ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Westminster, London, England')); 43ef21b467SGreg Roach 44cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 450ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('England'); 46ef21b467SGreg Roach 47ef21b467SGreg Roach $column = new CensusColumnBirthPlace($census, '', ''); 48ef21b467SGreg Roach 495e933c21SGreg Roach self::assertSame('Westminster, London', $column->generate($individual, $individual)); 50ef21b467SGreg Roach } 51ef21b467SGreg Roach 529b802b22SGreg Roach public function testPlaceAndCountry(): void 53c1010edaSGreg Roach { 54cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 550ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('England')); 56ef21b467SGreg Roach 57cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 580ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('England'); 59ef21b467SGreg Roach 60ef21b467SGreg Roach $column = new CensusColumnBirthPlace($census, '', ''); 61ef21b467SGreg Roach 625e933c21SGreg Roach self::assertSame('', $column->generate($individual, $individual)); 63ef21b467SGreg Roach } 64ef21b467SGreg Roach 659b802b22SGreg Roach public function testDifferentCountry(): void 66c1010edaSGreg Roach { 67cd94ca66SGreg Roach $individual = $this->createMock(Individual::class); 680ecdbde6SGreg Roach $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Paris, France')); 69ef21b467SGreg Roach 70cd94ca66SGreg Roach $census = $this->createMock(CensusInterface::class); 710ecdbde6SGreg Roach $census->method('censusPlace')->willReturn('England'); 72ef21b467SGreg Roach 73ef21b467SGreg Roach $column = new CensusColumnBirthPlace($census, '', ''); 74ef21b467SGreg Roach 755e933c21SGreg Roach self::assertSame('Paris, France', $column->generate($individual, $individual)); 76ef21b467SGreg Roach } 77ef21b467SGreg Roach} 78