xref: /webtrees/tests/app/Census/CensusColumnBirthPlaceTest.php (revision 8d68cabe4cf02d6d8507faf4f53889852be0b6aa)
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 CensusColumnBirthPlace
23 */
24class CensusColumnBirthPlaceTest 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\CensusColumnBirthPlace
48	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
49	 */
50	public function testPlaceCountry() {
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('England');
56
57		$column = new CensusColumnBirthPlace($census, '', '');
58
59		$this->assertSame('Westminster, London', $column->generate($individual));
60	}
61
62	/**
63	 * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
64	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
65	 */
66	public function testPlaceAndCountry() {
67		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
68		$individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('England'));
69
70		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
71		$census->shouldReceive('censusPlace')->andReturn('England');
72
73		$column = new CensusColumnBirthPlace($census, '', '');
74
75		$this->assertSame('', $column->generate($individual));
76	}
77
78	/**
79	 * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
80	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
81	 */
82	public function testDifferentCountry() {
83		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
84		$individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Paris, France'));
85
86		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
87		$census->shouldReceive('censusPlace')->andReturn('England');
88
89		$column = new CensusColumnBirthPlace($census, '', '');
90
91		$this->assertSame('Paris, France', $column->generate($individual));
92	}
93}
94