xref: /webtrees/tests/app/Census/CensusColumnChildrenLivingTest.php (revision 1062a1429914c995339f502856821457aa975a5a)
144f3c149SGreg Roach<?php
244f3c149SGreg Roach
344f3c149SGreg Roach/**
444f3c149SGreg Roach * webtrees: online genealogy
5*1062a142SGreg Roach * Copyright (C) 2018 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;
2044f3c149SGreg Roachuse Mockery;
2144f3c149SGreg Roach
2244f3c149SGreg Roach/**
2344f3c149SGreg Roach * Test harness for the class CensusColumnChildrenLiving
2444f3c149SGreg Roach */
253e983931SGreg Roachclass CensusColumnChildrenLivingTest extends \PHPUnit\Framework\TestCase {
2644f3c149SGreg Roach	/**
2744f3c149SGreg Roach	 * Delete mock objects
2844f3c149SGreg Roach	 */
2944f3c149SGreg Roach	public function tearDown() {
3044f3c149SGreg Roach		Mockery::close();
3144f3c149SGreg Roach	}
3244f3c149SGreg Roach
3344f3c149SGreg Roach	/**
3415d603e7SGreg Roach	 * @covers \Fisharebest\Webtrees\Census\CensusColumnChildrenLiving
3515d603e7SGreg Roach	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
3644f3c149SGreg Roach	 */
3744f3c149SGreg Roach	public function testMale() {
38c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
3944f3c149SGreg Roach		$individual->shouldReceive('getSex')->andReturn('M');
4044f3c149SGreg Roach
41c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
4244f3c149SGreg Roach
4344f3c149SGreg Roach		$column = new CensusColumnChildrenLiving($census, '', '');
4444f3c149SGreg Roach
4544f3c149SGreg Roach		$this->assertSame('', $column->generate($individual));
4644f3c149SGreg Roach	}
4744f3c149SGreg Roach
4844f3c149SGreg Roach	/**
4915d603e7SGreg Roach	 * @covers \Fisharebest\Webtrees\Census\CensusColumnChildrenLiving
5015d603e7SGreg Roach	 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
5144f3c149SGreg Roach	 */
5244f3c149SGreg Roach	public function testCountChildren() {
5344f3c149SGreg Roach		// Stillborn
54c314ecc9SGreg Roach		$child1 = Mockery::mock('Fisharebest\Webtrees\Individual');
5544f3c149SGreg Roach		$child1->shouldReceive('getBirthDate')->andReturn(new Date('01 FEB 1904'));
5644f3c149SGreg Roach		$child1->shouldReceive('getDeathDate')->andReturn(new Date('01 FEB 1904'));
5744f3c149SGreg Roach
5844f3c149SGreg Roach		// Died after census
59c314ecc9SGreg Roach		$child2 = Mockery::mock('Fisharebest\Webtrees\Individual');
6044f3c149SGreg Roach		$child2->shouldReceive('getBirthDate')->andReturn(new Date('02 FEB 1904'));
6144f3c149SGreg Roach		$child2->shouldReceive('getDeathDate')->andReturn(new Date('20 DEC 1912'));
6244f3c149SGreg Roach
6344f3c149SGreg Roach		// Died before census
64c314ecc9SGreg Roach		$child3 = Mockery::mock('Fisharebest\Webtrees\Individual');
6544f3c149SGreg Roach		$child3->shouldReceive('getBirthDate')->andReturn(new Date('02 FEB 1904'));
6644f3c149SGreg Roach		$child3->shouldReceive('getDeathDate')->andReturn(new Date('20 DEC 1910'));
6744f3c149SGreg Roach
6844f3c149SGreg Roach		// Still living
69c314ecc9SGreg Roach		$child4 = Mockery::mock('Fisharebest\Webtrees\Individual');
7044f3c149SGreg Roach		$child4->shouldReceive('getBirthDate')->andReturn(new Date('01 FEB 1904'));
7144f3c149SGreg Roach		$child4->shouldReceive('getDeathDate')->andReturn(new Date(''));
7244f3c149SGreg Roach
73c314ecc9SGreg Roach		$family = Mockery::mock('Fisharebest\Webtrees\Family');
7413abd6f3SGreg Roach		$family->shouldReceive('getChildren')->andReturn([$child1, $child2, $child3, $child4]);
7544f3c149SGreg Roach
76c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
7744f3c149SGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
7813abd6f3SGreg Roach		$individual->shouldReceive('getSpouseFamilies')->andReturn([$family]);
7944f3c149SGreg Roach
80c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
8144f3c149SGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 MAR 1911');
8244f3c149SGreg Roach
8344f3c149SGreg Roach		$column = new CensusColumnChildrenLiving($census, '', '');
8444f3c149SGreg Roach
8544f3c149SGreg Roach		$this->assertSame('2', $column->generate($individual));
8644f3c149SGreg Roach	}
8744f3c149SGreg Roach}
88