1db7d25eeSGreg Roach<?php 2db7d25eeSGreg Roach/** 3db7d25eeSGreg Roach * webtrees: online genealogy 41062a142SGreg Roach * Copyright (C) 2018 webtrees development team 5db7d25eeSGreg Roach * This program is free software: you can redistribute it and/or modify 6db7d25eeSGreg Roach * it under the terms of the GNU General Public License as published by 7db7d25eeSGreg Roach * the Free Software Foundation, either version 3 of the License, or 8db7d25eeSGreg Roach * (at your option) any later version. 9db7d25eeSGreg Roach * This program is distributed in the hope that it will be useful, 10db7d25eeSGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 11db7d25eeSGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12db7d25eeSGreg Roach * GNU General Public License for more details. 13db7d25eeSGreg Roach * You should have received a copy of the GNU General Public License 14db7d25eeSGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>. 15db7d25eeSGreg Roach */ 16db7d25eeSGreg Roachnamespace Fisharebest\Webtrees\Census; 17db7d25eeSGreg Roach 18db7d25eeSGreg Roachuse Fisharebest\Webtrees\Date; 19db7d25eeSGreg Roachuse Mockery; 20db7d25eeSGreg Roach 21db7d25eeSGreg Roach/** 22db7d25eeSGreg Roach * Test harness for the class CensusColumnAgeMale5Years5Years 23db7d25eeSGreg Roach */ 2484e2cf4eSGreg Roachclass CensusColumnAgeMale5YearsTest extends \Fisharebest\Webtrees\TestCase 25c1010edaSGreg Roach{ 26db7d25eeSGreg Roach /** 27db7d25eeSGreg Roach * Delete mock objects 28*52348eb8SGreg Roach * 29*52348eb8SGreg Roach * @return void 30db7d25eeSGreg Roach */ 31c1010edaSGreg Roach public function tearDown() 32c1010edaSGreg Roach { 33db7d25eeSGreg Roach Mockery::close(); 34db7d25eeSGreg Roach } 35db7d25eeSGreg Roach 36db7d25eeSGreg Roach /** 3715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 3815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 39*52348eb8SGreg Roach * 40*52348eb8SGreg Roach * @return void 41db7d25eeSGreg Roach */ 42c1010edaSGreg Roach public function testMale() 43c1010edaSGreg Roach { 44c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 45db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 46db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 47db7d25eeSGreg Roach 48c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 49db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 50db7d25eeSGreg Roach 51ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 52db7d25eeSGreg Roach 53342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 54db7d25eeSGreg Roach } 55db7d25eeSGreg Roach 56db7d25eeSGreg Roach /** 5715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 5815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 59*52348eb8SGreg Roach * 60*52348eb8SGreg Roach * @return void 61db7d25eeSGreg Roach */ 62c1010edaSGreg Roach public function testFemale() 63c1010edaSGreg Roach { 64c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 65db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 66db7d25eeSGreg Roach 67c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 68db7d25eeSGreg Roach 69ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 70db7d25eeSGreg Roach 71342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 72db7d25eeSGreg Roach } 73db7d25eeSGreg Roach 74db7d25eeSGreg Roach /** 7515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 7615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 77*52348eb8SGreg Roach * 78*52348eb8SGreg Roach * @return void 79db7d25eeSGreg Roach */ 80c1010edaSGreg Roach public function testUnknownSex() 81c1010edaSGreg Roach { 82c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 83db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('U'); 84db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 85db7d25eeSGreg Roach 86c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 87db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 88db7d25eeSGreg Roach 89ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 90db7d25eeSGreg Roach 91342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 92db7d25eeSGreg Roach } 93db7d25eeSGreg Roach 94db7d25eeSGreg Roach /** 9515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 9615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 97*52348eb8SGreg Roach * 98*52348eb8SGreg Roach * @return void 99db7d25eeSGreg Roach */ 100c1010edaSGreg Roach public function testLessThanOneYear() 101c1010edaSGreg Roach { 102c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 103db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 104db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 105db7d25eeSGreg Roach 106c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 107db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1800'); 108db7d25eeSGreg Roach 109ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 110db7d25eeSGreg Roach 111342dcecdSGreg Roach $this->assertSame('0', $column->generate($individual, $individual)); 112db7d25eeSGreg Roach } 113db7d25eeSGreg Roach 114db7d25eeSGreg Roach /** 11515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 11615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 117*52348eb8SGreg Roach * 118*52348eb8SGreg Roach * @return void 119db7d25eeSGreg Roach */ 120c1010edaSGreg Roach public function testLessThanFifteenYears() 121c1010edaSGreg Roach { 122c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 123db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 124db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 125db7d25eeSGreg Roach 126c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 127db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1814'); 128db7d25eeSGreg Roach 129ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 130db7d25eeSGreg Roach 131342dcecdSGreg Roach $this->assertSame('14', $column->generate($individual, $individual)); 132db7d25eeSGreg Roach } 133db7d25eeSGreg Roach 134db7d25eeSGreg Roach /** 13515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 13615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 137*52348eb8SGreg Roach * 138*52348eb8SGreg Roach * @return void 139db7d25eeSGreg Roach */ 140c1010edaSGreg Roach public function testRoundedDownToFiveYears() 141c1010edaSGreg Roach { 142c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 143db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 144db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 145db7d25eeSGreg Roach 146c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 147db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1844'); 148db7d25eeSGreg Roach 149ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 150db7d25eeSGreg Roach 151342dcecdSGreg Roach $this->assertSame('40', $column->generate($individual, $individual)); 152db7d25eeSGreg Roach } 153db7d25eeSGreg Roach} 154