xref: /webtrees/tests/app/Census/CensusColumnBirthPlaceSimpleTest.php (revision e9ae11ed86f22640e34d18435c526c56dbb9d30e)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2017 webtrees development team
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17namespace Fisharebest\Webtrees\Census;
18
19use Mockery;
20
21/**
22 * Test harness for the class CensusColumnBirthPlaceSimple
23 */
24class CensusColumnBirthPlaceSimpleTest extends \PHPUnit\Framework\TestCase {
25	/**
26	 * Delete mock objects
27	 */
28	public function tearDown() {
29		Mockery::close();
30	}
31
32	/**
33	 * Get place mock.
34	 *
35	 * @param string $place Gedcom Place
36	 *
37	 * @return \Fisharebest\Webtrees\Place
38	 */
39	private function getPlaceMock($place) {
40		$placeMock = Mockery::mock('\Fisharebest\Webtrees\Place');
41		$placeMock->shouldReceive('getGedcomName')->andReturn($place);
42
43		return $placeMock;
44	}
45
46	/**
47	 * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
48	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
49	 */
50	public function testForeignCountry() {
51		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
52		$individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Westminster, London, England'));
53
54		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
55		$census->shouldReceive('censusPlace')->andReturn('United States');
56
57		$column = new CensusColumnBirthPlaceSimple($census, '', '');
58
59		$this->assertSame('England', $column->generate($individual));
60	}
61
62	/**
63	 * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
64	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
65	 */
66	public function testJustCountry() {
67		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
68		$individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('United States'));
69
70		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
71		$census->shouldReceive('censusPlace')->andReturn('United States');
72
73		$column = new CensusColumnBirthPlaceSimple($census, '', '');
74
75		$this->assertSame('', $column->generate($individual));
76	}
77
78	/**
79	 * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
80	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
81	 */
82	public function testKnownState() {
83		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
84		$individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Maryland, United States'));
85
86		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
87		$census->shouldReceive('censusPlace')->andReturn('United States');
88
89		$column = new CensusColumnBirthPlaceSimple($census, '', '');
90
91		$this->assertSame('Maryland', $column->generate($individual));
92	}
93
94	/**
95	 * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
96	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
97	 */
98	public function testKnownStateAndTown() {
99		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
100		$individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Miami, Florida, United States'));
101
102		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
103		$census->shouldReceive('censusPlace')->andReturn('United States');
104
105		$column = new CensusColumnBirthPlaceSimple($census, '', '');
106
107		$this->assertSame('Florida', $column->generate($individual));
108	}
109}
110