173d4df56SGreg Roach<?php 273d4df56SGreg Roach 373d4df56SGreg Roach/** 473d4df56SGreg Roach * webtrees: online genealogy 51062a142SGreg Roach * Copyright (C) 2018 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 Mockery; 2173d4df56SGreg Roach 2273d4df56SGreg Roach/** 2373d4df56SGreg Roach * Test harness for the class CensusColumnConditionEnglish 2473d4df56SGreg Roach */ 25c1010edaSGreg Roachclass CensusColumnConditionEnglishTest extends \PHPUnit\Framework\TestCase 26c1010edaSGreg Roach{ 2773d4df56SGreg Roach /** 2873d4df56SGreg Roach * Delete mock objects 2973d4df56SGreg Roach */ 30c1010edaSGreg Roach public function tearDown() 31c1010edaSGreg Roach { 3273d4df56SGreg Roach Mockery::close(); 3373d4df56SGreg Roach } 3473d4df56SGreg Roach 3573d4df56SGreg Roach /** 3615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 3715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 3873d4df56SGreg Roach */ 39c1010edaSGreg Roach public function testNoSpouseFamiliesMale() 40c1010edaSGreg Roach { 41c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 4200225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 4313abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([]); 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 51*342dcecdSGreg Roach $this->assertSame('Unm', $column->generate($individual, $individual)); 5273d4df56SGreg Roach } 5373d4df56SGreg Roach 5473d4df56SGreg Roach /** 5515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 5615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 5773d4df56SGreg Roach */ 58c1010edaSGreg Roach public function testNoSpouseFamiliesFemale() 59c1010edaSGreg Roach { 6000225b98SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 6100225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 6213abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([]); 6300225b98SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800')); 6400225b98SGreg Roach 6500225b98SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 6600225b98SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 6700225b98SGreg Roach 6800225b98SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 6900225b98SGreg Roach 70*342dcecdSGreg Roach $this->assertSame('Unm', $column->generate($individual, $individual)); 7100225b98SGreg Roach } 7200225b98SGreg Roach 7300225b98SGreg Roach /** 7415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 7515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 7600225b98SGreg Roach */ 77c1010edaSGreg Roach public function testNoFamilyFactsMale() 78c1010edaSGreg Roach { 79c314ecc9SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 8073d4df56SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 812a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([]); 8273d4df56SGreg Roach 83c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 8413abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 852a6fda60SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800')); 862a6fda60SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 8773d4df56SGreg Roach 88c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 8973d4df56SGreg Roach 9073d4df56SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 9173d4df56SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 9273d4df56SGreg Roach 93*342dcecdSGreg Roach $this->assertSame('Unm', $column->generate($individual, $individual)); 9473d4df56SGreg Roach } 9573d4df56SGreg Roach 9673d4df56SGreg Roach /** 9715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 9815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 9973d4df56SGreg Roach */ 100c1010edaSGreg Roach public function testNoFamilyFactsFemale() 101c1010edaSGreg Roach { 102c314ecc9SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 10373d4df56SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 1042a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([]); 10573d4df56SGreg Roach 106c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 10713abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 1082a6fda60SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800')); 1092a6fda60SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 11073d4df56SGreg Roach 111c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 11273d4df56SGreg Roach 11373d4df56SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 11473d4df56SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 11573d4df56SGreg Roach 116*342dcecdSGreg Roach $this->assertSame('Unm', $column->generate($individual, $individual)); 11700225b98SGreg Roach } 11800225b98SGreg Roach 11900225b98SGreg Roach /** 12015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 12115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 12200225b98SGreg Roach */ 123c1010edaSGreg Roach public function testSpouseDeadMale() 124c1010edaSGreg Roach { 1252a6fda60SGreg Roach $fact = Mockery::mock('Fisharebest\Webtrees\Fact'); 1262a6fda60SGreg Roach 127e76c0cf0SGreg Roach $spouse = Mockery::mock('Fisharebest\Webtrees\Individual'); 128e76c0cf0SGreg Roach $spouse->shouldReceive('getDeathDate')->andReturn(new Date('1820')); 129e76c0cf0SGreg Roach 130e76c0cf0SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 131e76c0cf0SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 1322a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([$fact]); 1332a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('DIV')->andReturn([]); 134e76c0cf0SGreg Roach $family->shouldReceive('getSpouse')->andReturn($spouse); 135e76c0cf0SGreg Roach 136e76c0cf0SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 137e76c0cf0SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 13813abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 139e76c0cf0SGreg Roach 140e76c0cf0SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 141e76c0cf0SGreg Roach 142e76c0cf0SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 143e76c0cf0SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 144e76c0cf0SGreg Roach 145*342dcecdSGreg Roach $this->assertSame('Wid', $column->generate($individual, $individual)); 146e76c0cf0SGreg Roach } 147e76c0cf0SGreg Roach 148e76c0cf0SGreg Roach /** 14915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 15015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 151e76c0cf0SGreg Roach */ 152c1010edaSGreg Roach public function testSpouseDeadFemale() 153c1010edaSGreg Roach { 1542a6fda60SGreg Roach $fact = Mockery::mock('Fisharebest\Webtrees\Fact'); 1552a6fda60SGreg Roach 156e76c0cf0SGreg Roach $spouse = Mockery::mock('Fisharebest\Webtrees\Individual'); 157e76c0cf0SGreg Roach $spouse->shouldReceive('getDeathDate')->andReturn(new Date('1820')); 158e76c0cf0SGreg Roach 159e76c0cf0SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 160e76c0cf0SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 1612a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([$fact]); 1622a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('DIV')->andReturn([]); 163e76c0cf0SGreg Roach $family->shouldReceive('getSpouse')->andReturn($spouse); 164e76c0cf0SGreg Roach 165e76c0cf0SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 166e76c0cf0SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 16713abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 168e76c0cf0SGreg Roach 169e76c0cf0SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 170e76c0cf0SGreg Roach 171e76c0cf0SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 172e76c0cf0SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 173e76c0cf0SGreg Roach 174*342dcecdSGreg Roach $this->assertSame('Wid', $column->generate($individual, $individual)); 175e76c0cf0SGreg Roach } 176e76c0cf0SGreg Roach 177e76c0cf0SGreg Roach /** 17815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 17915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 180e76c0cf0SGreg Roach */ 181c1010edaSGreg Roach public function testNoFamilyUnmarriedMale() 182c1010edaSGreg Roach { 18300225b98SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 18400225b98SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 1852a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([]); 18600225b98SGreg Roach 18700225b98SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 18800225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 18913abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 19000225b98SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800')); 19100225b98SGreg Roach 19200225b98SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 19300225b98SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 19400225b98SGreg Roach 19500225b98SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 19600225b98SGreg Roach 197*342dcecdSGreg Roach $this->assertSame('Unm', $column->generate($individual, $individual)); 19873d4df56SGreg Roach } 19973d4df56SGreg Roach 20073d4df56SGreg Roach /** 20115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 20215d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 20373d4df56SGreg Roach */ 204c1010edaSGreg Roach public function testNoFamilyUnmarriedFemale() 205c1010edaSGreg Roach { 20600225b98SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 20700225b98SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 2082a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([]); 20900225b98SGreg Roach 21000225b98SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 21100225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 21213abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 21300225b98SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1800')); 21400225b98SGreg Roach 21500225b98SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 21600225b98SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 21700225b98SGreg Roach 21800225b98SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 21900225b98SGreg Roach 220*342dcecdSGreg Roach $this->assertSame('Unm', $column->generate($individual, $individual)); 22100225b98SGreg Roach } 22200225b98SGreg Roach 22300225b98SGreg Roach /** 22415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 22515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 22600225b98SGreg Roach */ 227c1010edaSGreg Roach public function testChildMale() 228c1010edaSGreg Roach { 22900225b98SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 23000225b98SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 2312a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([]); 23200225b98SGreg Roach 23300225b98SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 23400225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 23513abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 23600225b98SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1820')); 23700225b98SGreg Roach 23800225b98SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 23900225b98SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 24000225b98SGreg Roach 24100225b98SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 24200225b98SGreg Roach 243*342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 24400225b98SGreg Roach } 24500225b98SGreg Roach 24600225b98SGreg Roach /** 24715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 24815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 24900225b98SGreg Roach */ 250c1010edaSGreg Roach public function testChildFemale() 251c1010edaSGreg Roach { 25200225b98SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 25300225b98SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 2542a6fda60SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([]); 25500225b98SGreg Roach 25600225b98SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 25700225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 25813abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 25900225b98SGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('1820')); 26000225b98SGreg Roach 26100225b98SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 26200225b98SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 26300225b98SGreg Roach 26400225b98SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 26500225b98SGreg Roach 266*342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 26700225b98SGreg Roach } 26800225b98SGreg Roach 26900225b98SGreg Roach /** 27015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 27115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 27200225b98SGreg Roach */ 273c1010edaSGreg Roach public function testDivorcedMale() 274c1010edaSGreg Roach { 275c314ecc9SGreg Roach $fact = Mockery::mock('Fisharebest\Webtrees\Fact'); 27673d4df56SGreg Roach 277c314ecc9SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 27873d4df56SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 2790b4be234SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([$fact]); 28013abd6f3SGreg Roach $family->shouldReceive('getFacts')->with('DIV')->andReturn([$fact]); 28173d4df56SGreg Roach 282c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 28300225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 28413abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 28500225b98SGreg Roach 28600225b98SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 28700225b98SGreg Roach 28800225b98SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 28900225b98SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 29000225b98SGreg Roach 291*342dcecdSGreg Roach $this->assertSame('Div', $column->generate($individual, $individual)); 29200225b98SGreg Roach } 29300225b98SGreg Roach 29400225b98SGreg Roach /** 29515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnConditionEnglish 29615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumnCondition 29700225b98SGreg Roach */ 298c1010edaSGreg Roach public function testDivorcedFemale() 299c1010edaSGreg Roach { 30000225b98SGreg Roach $fact = Mockery::mock('Fisharebest\Webtrees\Fact'); 30100225b98SGreg Roach 30200225b98SGreg Roach $family = Mockery::mock('Fisharebest\Webtrees\Family'); 30300225b98SGreg Roach $family->shouldReceive('getMarriageDate')->andReturn(new Date('')); 3040b4be234SGreg Roach $family->shouldReceive('getFacts')->with('MARR')->andReturn([$fact]); 30513abd6f3SGreg Roach $family->shouldReceive('getFacts')->with('DIV')->andReturn([$fact]); 30600225b98SGreg Roach 30700225b98SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 30800225b98SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 30913abd6f3SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 31073d4df56SGreg Roach 311c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 31273d4df56SGreg Roach 31373d4df56SGreg Roach $column = new CensusColumnConditionEnglish($census, '', ''); 31473d4df56SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 31573d4df56SGreg Roach 316*342dcecdSGreg Roach $this->assertSame('Div', $column->generate($individual, $individual)); 31773d4df56SGreg Roach } 31873d4df56SGreg Roach} 319