xref: /webtrees/tests/app/Census/CensusColumnConditionEnglishTest.php (revision e76c0cf0a1f30c4a8739aa4873bf924d3c49e342)
173d4df56SGreg Roach<?php
273d4df56SGreg Roach
373d4df56SGreg Roach/**
473d4df56SGreg Roach * webtrees: online genealogy
5369c0ce6SGreg Roach * Copyright (C) 2016 webtrees development team
673d4df56SGreg Roach * This program is free software: you can redistribute it and/or modify
773d4df56SGreg Roach * it under the terms of the GNU General Public License as published by
873d4df56SGreg Roach * the Free Software Foundation, either version 3 of the License, or
973d4df56SGreg Roach * (at your option) any later version.
1073d4df56SGreg Roach * This program is distributed in the hope that it will be useful,
1173d4df56SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
1273d4df56SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1373d4df56SGreg Roach * GNU General Public License for more details.
1473d4df56SGreg Roach * You should have received a copy of the GNU General Public License
1573d4df56SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
1673d4df56SGreg Roach */
1773d4df56SGreg Roachnamespace Fisharebest\Webtrees\Census;
1873d4df56SGreg Roach
1973d4df56SGreg Roachuse Fisharebest\Webtrees\Date;
2073d4df56SGreg Roachuse Fisharebest\Webtrees\Fact;
2173d4df56SGreg Roachuse Fisharebest\Webtrees\Family;
2273d4df56SGreg Roachuse Fisharebest\Webtrees\Individual;
2373d4df56SGreg Roachuse Mockery;
2473d4df56SGreg Roach
2573d4df56SGreg Roach/**
2673d4df56SGreg Roach * Test harness for the class CensusColumnConditionEnglish
2773d4df56SGreg Roach */
2873d4df56SGreg Roachclass CensusColumnConditionEnglishTest extends \PHPUnit_Framework_TestCase {
2973d4df56SGreg Roach	/**
3073d4df56SGreg Roach	 * Delete mock objects
3173d4df56SGreg Roach	 */
3273d4df56SGreg Roach	public function tearDown() {
3373d4df56SGreg Roach		Mockery::close();
3473d4df56SGreg Roach	}
3573d4df56SGreg Roach
3673d4df56SGreg Roach	/**
3773d4df56SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
3800225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
3973d4df56SGreg Roach	 */
4000225b98SGreg Roach	public function testNoSpouseFamiliesMale() {
41c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
4200225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
43e2052359SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array());
4400225b98SGreg Roach		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800'));
4573d4df56SGreg Roach
46c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
4700225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
4873d4df56SGreg Roach
4973d4df56SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
5073d4df56SGreg Roach
5173d4df56SGreg Roach		$this->assertSame('Unm', $column->generate($individual));
5273d4df56SGreg Roach	}
5373d4df56SGreg Roach
5473d4df56SGreg Roach	/**
5573d4df56SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
5600225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
5773d4df56SGreg Roach	 */
5800225b98SGreg Roach	public function testNoSpouseFamiliesFemale() {
5900225b98SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
6000225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
6100225b98SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array());
6200225b98SGreg Roach		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800'));
6300225b98SGreg Roach
6400225b98SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
6500225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
6600225b98SGreg Roach
6700225b98SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
6800225b98SGreg Roach
6900225b98SGreg Roach		$this->assertSame('Unm', $column->generate($individual));
7000225b98SGreg Roach	}
7100225b98SGreg Roach
7200225b98SGreg Roach	/**
7300225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
7400225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
7500225b98SGreg Roach	 */
76*e76c0cf0SGreg Roach	public function testNoFamilyFactsMale() {
77*e76c0cf0SGreg Roach		$spouse = Mockery::mock('Fisharebest\Webtrees\Individual');
78*e76c0cf0SGreg Roach		$spouse->shouldReceive('getDeathDate')->andReturn(new Date('1850'));
79*e76c0cf0SGreg Roach
80c314ecc9SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
8173d4df56SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
82e2052359SGreg Roach		$family->shouldReceive('getFacts')->andReturn(array());
83*e76c0cf0SGreg Roach		$family->shouldReceive('getSpouse')->andReturn($spouse);
8473d4df56SGreg Roach
85c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
8600225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
87e2052359SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
8873d4df56SGreg Roach
89c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
9073d4df56SGreg Roach
9173d4df56SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
9273d4df56SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
9373d4df56SGreg Roach
9473d4df56SGreg Roach		$this->assertSame('Mar', $column->generate($individual));
9573d4df56SGreg Roach	}
9673d4df56SGreg Roach
9773d4df56SGreg Roach	/**
9873d4df56SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
9900225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
10073d4df56SGreg Roach	 */
101*e76c0cf0SGreg Roach	public function testNoFamilyFactsFemale() {
102*e76c0cf0SGreg Roach		$spouse = Mockery::mock('Fisharebest\Webtrees\Individual');
103*e76c0cf0SGreg Roach		$spouse->shouldReceive('getDeathDate')->andReturn(new Date('1850'));
104*e76c0cf0SGreg Roach
105c314ecc9SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
10673d4df56SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
10700225b98SGreg Roach		$family->shouldReceive('getFacts')->andReturn(array());
108*e76c0cf0SGreg Roach		$family->shouldReceive('getSpouse')->andReturn($spouse);
10973d4df56SGreg Roach
110c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
11100225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
112e2052359SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
11373d4df56SGreg Roach
114c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
11573d4df56SGreg Roach
11673d4df56SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
11773d4df56SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
11873d4df56SGreg Roach
11900225b98SGreg Roach		$this->assertSame('Mar', $column->generate($individual));
12000225b98SGreg Roach	}
12100225b98SGreg Roach
12200225b98SGreg Roach	/**
12300225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
12400225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
12500225b98SGreg Roach	 */
126*e76c0cf0SGreg Roach	public function testSpouseDeadMale() {
127*e76c0cf0SGreg Roach		$spouse = Mockery::mock('Fisharebest\Webtrees\Individual');
128*e76c0cf0SGreg Roach		$spouse->shouldReceive('getDeathDate')->andReturn(new Date('1820'));
129*e76c0cf0SGreg Roach
130*e76c0cf0SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
131*e76c0cf0SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
132*e76c0cf0SGreg Roach		$family->shouldReceive('getFacts')->andReturn(array());
133*e76c0cf0SGreg Roach		$family->shouldReceive('getSpouse')->andReturn($spouse);
134*e76c0cf0SGreg Roach
135*e76c0cf0SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
136*e76c0cf0SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
137*e76c0cf0SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
138*e76c0cf0SGreg Roach
139*e76c0cf0SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
140*e76c0cf0SGreg Roach
141*e76c0cf0SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
142*e76c0cf0SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
143*e76c0cf0SGreg Roach
144*e76c0cf0SGreg Roach		$this->assertSame('Wid', $column->generate($individual));
145*e76c0cf0SGreg Roach	}
146*e76c0cf0SGreg Roach
147*e76c0cf0SGreg Roach	/**
148*e76c0cf0SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
149*e76c0cf0SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
150*e76c0cf0SGreg Roach	 */
151*e76c0cf0SGreg Roach	public function testSpouseDeadFemale() {
152*e76c0cf0SGreg Roach		$spouse = Mockery::mock('Fisharebest\Webtrees\Individual');
153*e76c0cf0SGreg Roach		$spouse->shouldReceive('getDeathDate')->andReturn(new Date('1820'));
154*e76c0cf0SGreg Roach
155*e76c0cf0SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
156*e76c0cf0SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
157*e76c0cf0SGreg Roach		$family->shouldReceive('getFacts')->andReturn(array());
158*e76c0cf0SGreg Roach		$family->shouldReceive('getSpouse')->andReturn($spouse);
159*e76c0cf0SGreg Roach
160*e76c0cf0SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
161*e76c0cf0SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
162*e76c0cf0SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
163*e76c0cf0SGreg Roach
164*e76c0cf0SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
165*e76c0cf0SGreg Roach
166*e76c0cf0SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
167*e76c0cf0SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
168*e76c0cf0SGreg Roach
169*e76c0cf0SGreg Roach		$this->assertSame('Wid', $column->generate($individual));
170*e76c0cf0SGreg Roach	}
171*e76c0cf0SGreg Roach
172*e76c0cf0SGreg Roach	/**
173*e76c0cf0SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
174*e76c0cf0SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
175*e76c0cf0SGreg Roach	 */
17600225b98SGreg Roach	public function testNoFamilyUnmarriedMale() {
17700225b98SGreg Roach		$fact = Mockery::mock('Fisharebest\Webtrees\Fact');
17800225b98SGreg Roach
17900225b98SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
18000225b98SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
18100225b98SGreg Roach		$family->shouldReceive('getFacts')->with('_NMR')->andReturn(array($fact));
18200225b98SGreg Roach
18300225b98SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
18400225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
18500225b98SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
18600225b98SGreg Roach		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800'));
18700225b98SGreg Roach
18800225b98SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
18900225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
19000225b98SGreg Roach
19100225b98SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
19200225b98SGreg Roach
19373d4df56SGreg Roach		$this->assertSame('Unm', $column->generate($individual));
19473d4df56SGreg Roach	}
19573d4df56SGreg Roach
19673d4df56SGreg Roach	/**
19773d4df56SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
19800225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
19973d4df56SGreg Roach	 */
20000225b98SGreg Roach	public function testNoFamilyUnmarriedFemale() {
20100225b98SGreg Roach		$fact = Mockery::mock('Fisharebest\Webtrees\Fact');
20200225b98SGreg Roach
20300225b98SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
20400225b98SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
20500225b98SGreg Roach		$family->shouldReceive('getFacts')->with('_NMR')->andReturn(array($fact));
20600225b98SGreg Roach
20700225b98SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
20800225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
20900225b98SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
21000225b98SGreg Roach		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800'));
21100225b98SGreg Roach
21200225b98SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
21300225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
21400225b98SGreg Roach
21500225b98SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
21600225b98SGreg Roach
21700225b98SGreg Roach		$this->assertSame('Unm', $column->generate($individual));
21800225b98SGreg Roach	}
21900225b98SGreg Roach
22000225b98SGreg Roach	/**
22100225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
22200225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
22300225b98SGreg Roach	 */
22400225b98SGreg Roach	public function testChildMale() {
22500225b98SGreg Roach		$fact = Mockery::mock('Fisharebest\Webtrees\Fact');
22600225b98SGreg Roach
22700225b98SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
22800225b98SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
22900225b98SGreg Roach		$family->shouldReceive('getFacts')->with('_NMR')->andReturn(array($fact));
23000225b98SGreg Roach
23100225b98SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
23200225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
23300225b98SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
23400225b98SGreg Roach		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1820'));
23500225b98SGreg Roach
23600225b98SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
23700225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
23800225b98SGreg Roach
23900225b98SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
24000225b98SGreg Roach
24100225b98SGreg Roach		$this->assertSame('', $column->generate($individual));
24200225b98SGreg Roach	}
24300225b98SGreg Roach
24400225b98SGreg Roach	/**
24500225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
24600225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
24700225b98SGreg Roach	 */
24800225b98SGreg Roach	public function testChildFemale() {
24900225b98SGreg Roach		$fact = Mockery::mock('Fisharebest\Webtrees\Fact');
25000225b98SGreg Roach
25100225b98SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
25200225b98SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
25300225b98SGreg Roach		$family->shouldReceive('getFacts')->with('_NMR')->andReturn(array($fact));
25400225b98SGreg Roach
25500225b98SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
25600225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
25700225b98SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
25800225b98SGreg Roach		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1820'));
25900225b98SGreg Roach
26000225b98SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
26100225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
26200225b98SGreg Roach
26300225b98SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
26400225b98SGreg Roach
26500225b98SGreg Roach		$this->assertSame('', $column->generate($individual));
26600225b98SGreg Roach	}
26700225b98SGreg Roach
26800225b98SGreg Roach	/**
26900225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
27000225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
27100225b98SGreg Roach	 */
27200225b98SGreg Roach	public function testDivorcedMale() {
273c314ecc9SGreg Roach		$fact = Mockery::mock('Fisharebest\Webtrees\Fact');
27473d4df56SGreg Roach
275c314ecc9SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
27673d4df56SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
277e2052359SGreg Roach		$family->shouldReceive('getFacts')->with('_NMR')->andReturn(array());
278e2052359SGreg Roach		$family->shouldReceive('getFacts')->with('DIV')->andReturn(array($fact));
27973d4df56SGreg Roach
280c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
28100225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
28200225b98SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
28300225b98SGreg Roach
28400225b98SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
28500225b98SGreg Roach
28600225b98SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
28700225b98SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
28800225b98SGreg Roach
28900225b98SGreg Roach		$this->assertSame('Div', $column->generate($individual));
29000225b98SGreg Roach	}
29100225b98SGreg Roach
29200225b98SGreg Roach	/**
29300225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnConditionEnglish
29400225b98SGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumnCondition
29500225b98SGreg Roach	 */
29600225b98SGreg Roach	public function testDivorcedFemale() {
29700225b98SGreg Roach		$fact = Mockery::mock('Fisharebest\Webtrees\Fact');
29800225b98SGreg Roach
29900225b98SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
30000225b98SGreg Roach		$family->shouldReceive('getMarriageDate')->andReturn(new Date(''));
30100225b98SGreg Roach		$family->shouldReceive('getFacts')->with('_NMR')->andReturn(array());
30200225b98SGreg Roach		$family->shouldReceive('getFacts')->with('DIV')->andReturn(array($fact));
30300225b98SGreg Roach
30400225b98SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
30500225b98SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
306e2052359SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn(array($family));
30773d4df56SGreg Roach
308c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
30973d4df56SGreg Roach
31073d4df56SGreg Roach		$column = new CensusColumnConditionEnglish($census, '', '');
31173d4df56SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
31273d4df56SGreg Roach
31373d4df56SGreg Roach		$this->assertSame('Div', $column->generate($individual));
31473d4df56SGreg Roach	}
31573d4df56SGreg Roach}
316