144f3c149SGreg Roach<?php 244f3c149SGreg Roach 344f3c149SGreg Roach/** 444f3c149SGreg Roach * webtrees: online genealogy 544f3c149SGreg Roach * Copyright (C) 2015 webtrees development team 644f3c149SGreg Roach * This program is free software: you can redistribute it and/or modify 744f3c149SGreg Roach * it under the terms of the GNU General Public License as published by 844f3c149SGreg Roach * the Free Software Foundation, either version 3 of the License, or 944f3c149SGreg Roach * (at your option) any later version. 1044f3c149SGreg Roach * This program is distributed in the hope that it will be useful, 1144f3c149SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 1244f3c149SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1344f3c149SGreg Roach * GNU General Public License for more details. 1444f3c149SGreg Roach * You should have received a copy of the GNU General Public License 1544f3c149SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>. 1644f3c149SGreg Roach */ 1744f3c149SGreg Roachnamespace Fisharebest\Webtrees\Census; 1844f3c149SGreg Roach 1944f3c149SGreg Roachuse Fisharebest\Webtrees\Date; 2088cd6753SGreg Roachuse Fisharebest\Webtrees\Family; 2144f3c149SGreg Roachuse Fisharebest\Webtrees\Individual; 2244f3c149SGreg Roachuse Mockery; 2344f3c149SGreg Roach 2444f3c149SGreg Roach/** 2544f3c149SGreg Roach * Test harness for the class CensusColumnChildrenLiving 2644f3c149SGreg Roach */ 2744f3c149SGreg Roachclass CensusColumnChildrenLivingTest extends \PHPUnit_Framework_TestCase { 2844f3c149SGreg Roach /** 2944f3c149SGreg Roach * Delete mock objects 3044f3c149SGreg Roach */ 3144f3c149SGreg Roach public function tearDown() { 3244f3c149SGreg Roach Mockery::close(); 3344f3c149SGreg Roach } 3444f3c149SGreg Roach 3544f3c149SGreg Roach /** 3644f3c149SGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnChildrenLiving 3744f3c149SGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 3844f3c149SGreg Roach */ 3944f3c149SGreg Roach public function testMale() { 4044f3c149SGreg Roach $individual = Mockery::mock(Individual::class); 4144f3c149SGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 4244f3c149SGreg Roach 4344f3c149SGreg Roach $census = Mockery::mock(CensusInterface::class); 4444f3c149SGreg Roach 4544f3c149SGreg Roach $column = new CensusColumnChildrenLiving($census, '', ''); 4644f3c149SGreg Roach 4744f3c149SGreg Roach $this->assertSame('', $column->generate($individual)); 4844f3c149SGreg Roach } 4944f3c149SGreg Roach 5044f3c149SGreg Roach /** 5144f3c149SGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnChildrenLiving 5244f3c149SGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 5344f3c149SGreg Roach */ 5444f3c149SGreg Roach public function testCountChildren() { 5544f3c149SGreg Roach // Stillborn 5644f3c149SGreg Roach $child1 = Mockery::mock(Individual::class); 5744f3c149SGreg Roach $child1->shouldReceive('getBirthDate')->andReturn(new Date('01 FEB 1904')); 5844f3c149SGreg Roach $child1->shouldReceive('getDeathDate')->andReturn(new Date('01 FEB 1904')); 5944f3c149SGreg Roach 6044f3c149SGreg Roach // Died after census 6144f3c149SGreg Roach $child2 = Mockery::mock(Individual::class); 6244f3c149SGreg Roach $child2->shouldReceive('getBirthDate')->andReturn(new Date('02 FEB 1904')); 6344f3c149SGreg Roach $child2->shouldReceive('getDeathDate')->andReturn(new Date('20 DEC 1912')); 6444f3c149SGreg Roach 6544f3c149SGreg Roach // Died before census 6644f3c149SGreg Roach $child3 = Mockery::mock(Individual::class); 6744f3c149SGreg Roach $child3->shouldReceive('getBirthDate')->andReturn(new Date('02 FEB 1904')); 6844f3c149SGreg Roach $child3->shouldReceive('getDeathDate')->andReturn(new Date('20 DEC 1910')); 6944f3c149SGreg Roach 7044f3c149SGreg Roach // Still living 7144f3c149SGreg Roach $child4 = Mockery::mock(Individual::class); 7244f3c149SGreg Roach $child4->shouldReceive('getBirthDate')->andReturn(new Date('01 FEB 1904')); 7344f3c149SGreg Roach $child4->shouldReceive('getDeathDate')->andReturn(new Date('')); 7444f3c149SGreg Roach 7544f3c149SGreg Roach $family = Mockery::mock(Family::class); 76*e2052359SGreg Roach $family->shouldReceive('getChildren')->andReturn(array($child1, $child2, $child3, $child4)); 7744f3c149SGreg Roach 7844f3c149SGreg Roach $individual = Mockery::mock(Individual::class); 7944f3c149SGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 80*e2052359SGreg Roach $individual->shouldReceive('getSpouseFamilies')->andReturn(array($family)); 8144f3c149SGreg Roach 8244f3c149SGreg Roach $census = Mockery::mock(CensusInterface::class); 8344f3c149SGreg Roach $census->shouldReceive('censusDate')->andReturn('30 MAR 1911'); 8444f3c149SGreg Roach 8544f3c149SGreg Roach $column = new CensusColumnChildrenLiving($census, '', ''); 8644f3c149SGreg Roach 8744f3c149SGreg Roach $this->assertSame('2', $column->generate($individual)); 8844f3c149SGreg Roach } 8944f3c149SGreg Roach} 90