xref: /webtrees/tests/app/Census/CensusColumnFatherForeignTest.php (revision 0fd39724ec01f9f77115641c88ab7da1a4b09227)
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 CensusColumnFatherForeign
23 */
24class CensusColumnFatherForeignTest 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	{
41		$placeMock = Mockery::mock('\Fisharebest\Webtrees\Place');
42		$placeMock->shouldReceive('getGedcomName')->andReturn($place);
43
44		return $placeMock;
45	}
46
47	/**
48	 * @covers \Fisharebest\Webtrees\Census\CensusColumnFatherForeign
49	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
50	 */
51	public function testSameCountry() {
52		$father = Mockery::mock('Fisharebest\Webtrees\Individual');
53		$father->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('London, England'));
54
55		$family = Mockery::mock('Fisharebest\Webtrees\Family');
56		$family->shouldReceive('getHusband')->andReturn($father);
57
58		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
59		$individual->shouldReceive('getPrimaryChildFamily')->andReturn($family);
60
61		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
62		$census->shouldReceive('censusPlace')->andReturn('England');
63
64		$column = new CensusColumnFatherForeign($census, '', '');
65
66		$this->assertSame('', $column->generate($individual));
67	}
68
69	/**
70	 * @covers \Fisharebest\Webtrees\Census\CensusColumnFatherForeign
71	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
72	 */
73	public function testDifferentCountry() {
74		$father = Mockery::mock('Fisharebest\Webtrees\Individual');
75		$father->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('London, England'));
76
77		$family = Mockery::mock('Fisharebest\Webtrees\Family');
78		$family->shouldReceive('getHusband')->andReturn($father);
79
80		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
81		$individual->shouldReceive('getPrimaryChildFamily')->andReturn($family);
82
83		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
84		$census->shouldReceive('censusPlace')->andReturn('Ireland');
85
86		$column = new CensusColumnFatherForeign($census, '', '');
87
88		$this->assertSame('Y', $column->generate($individual));
89	}
90
91	/**
92	 * @covers \Fisharebest\Webtrees\Census\CensusColumnFatherForeign
93	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
94	 */
95	public function testPlaceNoParent() {
96		$family = Mockery::mock('Fisharebest\Webtrees\Family');
97		$family->shouldReceive('getHusband')->andReturn(null);
98
99		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
100		$individual->shouldReceive('getPrimaryChildFamily')->andReturn($family);
101
102		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
103		$census->shouldReceive('censusPlace')->andReturn('England');
104
105		$column = new CensusColumnFatherForeign($census, '', '');
106
107		$this->assertSame('', $column->generate($individual));
108	}
109
110	/**
111	 * @covers \Fisharebest\Webtrees\Census\CensusColumnFatherForeign
112	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
113	 */
114	public function testPlaceNoParentFamily() {
115		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
116		$individual->shouldReceive('getPrimaryChildFamily')->andReturn(null);
117
118		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
119		$census->shouldReceive('censusPlace')->andReturn('England');
120
121		$column = new CensusColumnFatherForeign($census, '', '');
122
123		$this->assertSame('', $column->generate($individual));
124	}
125}
126