1a4500ed5SGreg Roach<?php 2a4500ed5SGreg Roach/** 3a4500ed5SGreg Roach * webtrees: online genealogy 4*8fcd0d32SGreg Roach * Copyright (C) 2019 webtrees development team 5a4500ed5SGreg Roach * This program is free software: you can redistribute it and/or modify 6a4500ed5SGreg Roach * it under the terms of the GNU General Public License as published by 7a4500ed5SGreg Roach * the Free Software Foundation, either version 3 of the License, or 8a4500ed5SGreg Roach * (at your option) any later version. 9a4500ed5SGreg Roach * This program is distributed in the hope that it will be useful, 10a4500ed5SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 11a4500ed5SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12a4500ed5SGreg Roach * GNU General Public License for more details. 13a4500ed5SGreg Roach * You should have received a copy of the GNU General Public License 14a4500ed5SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>. 15a4500ed5SGreg Roach */ 16e7f56f2aSGreg Roachdeclare(strict_types=1); 17e7f56f2aSGreg Roach 18a4500ed5SGreg Roachnamespace Fisharebest\Webtrees\Census; 19a4500ed5SGreg Roach 20ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual; 2152348eb8SGreg Roachuse Fisharebest\Webtrees\Place; 22a4500ed5SGreg Roachuse Mockery; 23a4500ed5SGreg Roach 24a4500ed5SGreg Roach/** 25a4500ed5SGreg Roach * Test harness for the class CensusColumnBirthPlaceSimple 26a4500ed5SGreg Roach */ 2784e2cf4eSGreg Roachclass CensusColumnBirthPlaceSimpleTest extends \Fisharebest\Webtrees\TestCase 28c1010edaSGreg Roach{ 29a4500ed5SGreg Roach /** 30a4500ed5SGreg Roach * Delete mock objects 3152348eb8SGreg Roach * 3252348eb8SGreg Roach * @return void 33a4500ed5SGreg Roach */ 34c1010edaSGreg Roach public function tearDown() 35c1010edaSGreg Roach { 36a4500ed5SGreg Roach Mockery::close(); 37a4500ed5SGreg Roach } 38a4500ed5SGreg Roach 39a4500ed5SGreg Roach /** 4016d0b7f7SRico Sonntag * Get place mock. 4116d0b7f7SRico Sonntag * 4216d0b7f7SRico Sonntag * @param string $place Gedcom Place 4316d0b7f7SRico Sonntag * 4452348eb8SGreg Roach * @return Place 4516d0b7f7SRico Sonntag */ 4652348eb8SGreg Roach private function getPlaceMock($place): Place 47c1010edaSGreg Roach { 48ddf438a5SGreg Roach $placeMock = Mockery::mock(Place::class); 4916d0b7f7SRico Sonntag $placeMock->shouldReceive('getGedcomName')->andReturn($place); 5016d0b7f7SRico Sonntag 5116d0b7f7SRico Sonntag return $placeMock; 5216d0b7f7SRico Sonntag } 5316d0b7f7SRico Sonntag 5416d0b7f7SRico Sonntag /** 5515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 5615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 5752348eb8SGreg Roach * 5852348eb8SGreg Roach * @return void 59a4500ed5SGreg Roach */ 60c1010edaSGreg Roach public function testForeignCountry() 61c1010edaSGreg Roach { 62ddf438a5SGreg Roach $individual = Mockery::mock(Individual::class); 6316d0b7f7SRico Sonntag $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Westminster, London, England')); 64a4500ed5SGreg Roach 65ddf438a5SGreg Roach $census = Mockery::mock(CensusInterface::class); 66a4500ed5SGreg Roach $census->shouldReceive('censusPlace')->andReturn('United States'); 67a4500ed5SGreg Roach 68a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 69a4500ed5SGreg Roach 70342dcecdSGreg Roach $this->assertSame('England', $column->generate($individual, $individual)); 71a4500ed5SGreg Roach } 72a4500ed5SGreg Roach 73a4500ed5SGreg Roach /** 7415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 7515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 7652348eb8SGreg Roach * 7752348eb8SGreg Roach * @return void 78a4500ed5SGreg Roach */ 79c1010edaSGreg Roach public function testJustCountry() 80c1010edaSGreg Roach { 81ddf438a5SGreg Roach $individual = Mockery::mock(Individual::class); 8216d0b7f7SRico Sonntag $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('United States')); 83a4500ed5SGreg Roach 84ddf438a5SGreg Roach $census = Mockery::mock(CensusInterface::class); 85a4500ed5SGreg Roach $census->shouldReceive('censusPlace')->andReturn('United States'); 86a4500ed5SGreg Roach 87a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 88a4500ed5SGreg Roach 89342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 90a4500ed5SGreg Roach } 91a4500ed5SGreg Roach 92a4500ed5SGreg Roach /** 9315d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 9415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 9552348eb8SGreg Roach * 9652348eb8SGreg Roach * @return void 97a4500ed5SGreg Roach */ 98c1010edaSGreg Roach public function testKnownState() 99c1010edaSGreg Roach { 100ddf438a5SGreg Roach $individual = Mockery::mock(Individual::class); 10116d0b7f7SRico Sonntag $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Maryland, United States')); 102a4500ed5SGreg Roach 103ddf438a5SGreg Roach $census = Mockery::mock(CensusInterface::class); 104a4500ed5SGreg Roach $census->shouldReceive('censusPlace')->andReturn('United States'); 105a4500ed5SGreg Roach 106a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 107a4500ed5SGreg Roach 108342dcecdSGreg Roach $this->assertSame('Maryland', $column->generate($individual, $individual)); 109a4500ed5SGreg Roach } 110a4500ed5SGreg Roach 111a4500ed5SGreg Roach /** 11215d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple 11315d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 11452348eb8SGreg Roach * 11552348eb8SGreg Roach * @return void 116a4500ed5SGreg Roach */ 117c1010edaSGreg Roach public function testKnownStateAndTown() 118c1010edaSGreg Roach { 119ddf438a5SGreg Roach $individual = Mockery::mock(Individual::class); 12016d0b7f7SRico Sonntag $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Miami, Florida, United States')); 121a4500ed5SGreg Roach 122ddf438a5SGreg Roach $census = Mockery::mock(CensusInterface::class); 123a4500ed5SGreg Roach $census->shouldReceive('censusPlace')->andReturn('United States'); 124a4500ed5SGreg Roach 125a4500ed5SGreg Roach $column = new CensusColumnBirthPlaceSimple($census, '', ''); 126a4500ed5SGreg Roach 127342dcecdSGreg Roach $this->assertSame('Florida', $column->generate($individual, $individual)); 128a4500ed5SGreg Roach } 129a4500ed5SGreg Roach} 130