1db7d25eeSGreg Roach<?php 23976b470SGreg Roach 3db7d25eeSGreg Roach/** 4db7d25eeSGreg Roach * webtrees: online genealogy 58fcd0d32SGreg Roach * Copyright (C) 2019 webtrees development team 6db7d25eeSGreg Roach * This program is free software: you can redistribute it and/or modify 7db7d25eeSGreg Roach * it under the terms of the GNU General Public License as published by 8db7d25eeSGreg Roach * the Free Software Foundation, either version 3 of the License, or 9db7d25eeSGreg Roach * (at your option) any later version. 10db7d25eeSGreg Roach * This program is distributed in the hope that it will be useful, 11db7d25eeSGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 12db7d25eeSGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13db7d25eeSGreg Roach * GNU General Public License for more details. 14db7d25eeSGreg Roach * You should have received a copy of the GNU General Public License 15db7d25eeSGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>. 16db7d25eeSGreg Roach */ 17e7f56f2aSGreg Roachdeclare(strict_types=1); 18e7f56f2aSGreg Roach 19db7d25eeSGreg Roachnamespace Fisharebest\Webtrees\Census; 20db7d25eeSGreg Roach 21db7d25eeSGreg Roachuse Fisharebest\Webtrees\Date; 22ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual; 23*3cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase; 24db7d25eeSGreg Roach 25db7d25eeSGreg Roach/** 26db7d25eeSGreg Roach * Test harness for the class CensusColumnAgeMale 27db7d25eeSGreg Roach */ 28*3cfcc809SGreg Roachclass CensusColumnAgeMaleTest extends TestCase 29c1010edaSGreg Roach{ 30db7d25eeSGreg Roach /** 3115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 3215d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 3352348eb8SGreg Roach * 3452348eb8SGreg Roach * @return void 35db7d25eeSGreg Roach */ 369b802b22SGreg Roach public function testMale(): void 37c1010edaSGreg Roach { 380ecdbde6SGreg Roach $individual = $this->createMock(Individual::class); 390ecdbde6SGreg Roach $individual->method('sex')->willReturn('M'); 400ecdbde6SGreg Roach $individual->method('getEstimatedBirthDate')->willReturn(new Date('01 JAN 1800')); 41db7d25eeSGreg Roach 420ecdbde6SGreg Roach $census = $this->createMock(CensusInterface::class); 430ecdbde6SGreg Roach $census->method('censusDate')->willReturn('30 JUN 1832'); 44db7d25eeSGreg Roach 45ef21b467SGreg Roach $column = new CensusColumnAgeMale($census, '', ''); 46db7d25eeSGreg Roach 47342dcecdSGreg Roach $this->assertSame('32', $column->generate($individual, $individual)); 48db7d25eeSGreg Roach } 49db7d25eeSGreg Roach 50db7d25eeSGreg Roach /** 5115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 5215d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 5352348eb8SGreg Roach * 5452348eb8SGreg Roach * @return void 55db7d25eeSGreg Roach */ 569b802b22SGreg Roach public function testFemale(): void 57c1010edaSGreg Roach { 580ecdbde6SGreg Roach $individual = $this->createMock(Individual::class); 590ecdbde6SGreg Roach $individual->method('sex')->willReturn('F'); 60db7d25eeSGreg Roach 610ecdbde6SGreg Roach $census = $this->createMock(CensusInterface::class); 62db7d25eeSGreg Roach 63ef21b467SGreg Roach $column = new CensusColumnAgeMale($census, '', ''); 64db7d25eeSGreg Roach 65342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 66db7d25eeSGreg Roach } 67db7d25eeSGreg Roach 68db7d25eeSGreg Roach /** 6915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 7015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 7152348eb8SGreg Roach * 7252348eb8SGreg Roach * @return void 73db7d25eeSGreg Roach */ 749b802b22SGreg Roach public function testUnknownSex(): void 75c1010edaSGreg Roach { 760ecdbde6SGreg Roach $individual = $this->createMock(Individual::class); 770ecdbde6SGreg Roach $individual->method('sex')->willReturn('U'); 780ecdbde6SGreg Roach $individual->method('getEstimatedBirthDate')->willReturn(new Date('01 JAN 1800')); 79db7d25eeSGreg Roach 800ecdbde6SGreg Roach $census = $this->createMock(CensusInterface::class); 810ecdbde6SGreg Roach $census->method('censusDate')->willReturn('30 JUN 1832'); 82db7d25eeSGreg Roach 83ef21b467SGreg Roach $column = new CensusColumnAgeMale($census, '', ''); 84db7d25eeSGreg Roach 85342dcecdSGreg Roach $this->assertSame('32', $column->generate($individual, $individual)); 86db7d25eeSGreg Roach } 87db7d25eeSGreg Roach 88db7d25eeSGreg Roach /** 8915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 9015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 9152348eb8SGreg Roach * 9252348eb8SGreg Roach * @return void 93db7d25eeSGreg Roach */ 949b802b22SGreg Roach public function testLessThanOneYear(): void 95c1010edaSGreg Roach { 960ecdbde6SGreg Roach $individual = $this->createMock(Individual::class); 970ecdbde6SGreg Roach $individual->method('sex')->willReturn('M'); 980ecdbde6SGreg Roach $individual->method('getEstimatedBirthDate')->willReturn(new Date('01 JAN 1800')); 99db7d25eeSGreg Roach 1000ecdbde6SGreg Roach $census = $this->createMock(CensusInterface::class); 1010ecdbde6SGreg Roach $census->method('censusDate')->willReturn('30 JUN 1800'); 102db7d25eeSGreg Roach 103ef21b467SGreg Roach $column = new CensusColumnAgeMale($census, '', ''); 104db7d25eeSGreg Roach 105342dcecdSGreg Roach $this->assertSame('0', $column->generate($individual, $individual)); 106db7d25eeSGreg Roach } 107db7d25eeSGreg Roach} 108