1<?php 2/** 3 * webtrees: online genealogy 4 * Copyright (C) 2018 webtrees development team 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16namespace Fisharebest\Webtrees\Census; 17 18use Fisharebest\Webtrees\Date; 19use Mockery; 20 21/** 22 * Test harness for the class CensusColumnChildrenLiving 23 */ 24class CensusColumnChildrenLivingTest extends \Fisharebest\Webtrees\TestCase 25{ 26 /** 27 * Delete mock objects 28 */ 29 public function tearDown() 30 { 31 Mockery::close(); 32 } 33 34 /** 35 * @covers \Fisharebest\Webtrees\Census\CensusColumnChildrenLiving 36 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 37 */ 38 public function testMale() 39 { 40 $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 41 $individual->shouldReceive('getSex')->andReturn('M'); 42 43 $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 44 45 $column = new CensusColumnChildrenLiving($census, '', ''); 46 47 $this->assertSame('', $column->generate($individual, $individual)); 48 } 49 50 /** 51 * @covers \Fisharebest\Webtrees\Census\CensusColumnChildrenLiving 52 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 53 */ 54 public function testCountChildren() 55 { 56 // Stillborn 57 $child1 = Mockery::mock('Fisharebest\Webtrees\Individual'); 58 $child1->shouldReceive('getBirthDate')->andReturn(new Date('01 FEB 1904')); 59 $child1->shouldReceive('getDeathDate')->andReturn(new Date('01 FEB 1904')); 60 61 // Died after census 62 $child2 = Mockery::mock('Fisharebest\Webtrees\Individual'); 63 $child2->shouldReceive('getBirthDate')->andReturn(new Date('02 FEB 1904')); 64 $child2->shouldReceive('getDeathDate')->andReturn(new Date('20 DEC 1912')); 65 66 // Died before census 67 $child3 = Mockery::mock('Fisharebest\Webtrees\Individual'); 68 $child3->shouldReceive('getBirthDate')->andReturn(new Date('02 FEB 1904')); 69 $child3->shouldReceive('getDeathDate')->andReturn(new Date('20 DEC 1910')); 70 71 // Still living 72 $child4 = Mockery::mock('Fisharebest\Webtrees\Individual'); 73 $child4->shouldReceive('getBirthDate')->andReturn(new Date('01 FEB 1904')); 74 $child4->shouldReceive('getDeathDate')->andReturn(new Date('')); 75 76 $family = Mockery::mock('Fisharebest\Webtrees\Family'); 77 $family->shouldReceive('getChildren')->andReturn([ 78 $child1, 79 $child2, 80 $child3, 81 $child4, 82 ]); 83 84 $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 85 $individual->shouldReceive('getSex')->andReturn('F'); 86 $individual->shouldReceive('getSpouseFamilies')->andReturn([$family]); 87 88 $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 89 $census->shouldReceive('censusDate')->andReturn('30 MAR 1911'); 90 91 $column = new CensusColumnChildrenLiving($census, '', ''); 92 93 $this->assertSame('2', $column->generate($individual, $individual)); 94 } 95} 96