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 */ 24*84e2cf4eSGreg Roachclass CensusColumnAgeMale5YearsTest extends \Fisharebest\Webtrees\TestCase 25c1010edaSGreg Roach{ 26db7d25eeSGreg Roach /** 27db7d25eeSGreg Roach * Delete mock objects 28db7d25eeSGreg Roach */ 29c1010edaSGreg Roach public function tearDown() 30c1010edaSGreg Roach { 31db7d25eeSGreg Roach Mockery::close(); 32db7d25eeSGreg Roach } 33db7d25eeSGreg Roach 34db7d25eeSGreg Roach /** 3515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 3615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 37db7d25eeSGreg Roach */ 38c1010edaSGreg Roach public function testMale() 39c1010edaSGreg Roach { 40c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 41db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 42db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 43db7d25eeSGreg Roach 44c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 45db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 46db7d25eeSGreg Roach 47ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 48db7d25eeSGreg Roach 49342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 50db7d25eeSGreg Roach } 51db7d25eeSGreg Roach 52db7d25eeSGreg Roach /** 5315d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 5415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 55db7d25eeSGreg Roach */ 56c1010edaSGreg Roach public function testFemale() 57c1010edaSGreg Roach { 58c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 59db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 60db7d25eeSGreg Roach 61c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 62db7d25eeSGreg Roach 63ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 64db7d25eeSGreg Roach 65342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 66db7d25eeSGreg Roach } 67db7d25eeSGreg Roach 68db7d25eeSGreg Roach /** 6915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 7015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 71db7d25eeSGreg Roach */ 72c1010edaSGreg Roach public function testUnknownSex() 73c1010edaSGreg Roach { 74c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 75db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('U'); 76db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 77db7d25eeSGreg Roach 78c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 79db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 80db7d25eeSGreg Roach 81ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 82db7d25eeSGreg Roach 83342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 84db7d25eeSGreg Roach } 85db7d25eeSGreg Roach 86db7d25eeSGreg Roach /** 8715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 8815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 89db7d25eeSGreg Roach */ 90c1010edaSGreg Roach public function testLessThanOneYear() 91c1010edaSGreg Roach { 92c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 93db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 94db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 95db7d25eeSGreg Roach 96c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 97db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1800'); 98db7d25eeSGreg Roach 99ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 100db7d25eeSGreg Roach 101342dcecdSGreg Roach $this->assertSame('0', $column->generate($individual, $individual)); 102db7d25eeSGreg Roach } 103db7d25eeSGreg Roach 104db7d25eeSGreg Roach /** 10515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 10615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 107db7d25eeSGreg Roach */ 108c1010edaSGreg Roach public function testLessThanFifteenYears() 109c1010edaSGreg Roach { 110c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 111db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 112db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 113db7d25eeSGreg Roach 114c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 115db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1814'); 116db7d25eeSGreg Roach 117ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 118db7d25eeSGreg Roach 119342dcecdSGreg Roach $this->assertSame('14', $column->generate($individual, $individual)); 120db7d25eeSGreg Roach } 121db7d25eeSGreg Roach 122db7d25eeSGreg Roach /** 12315d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 12415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 125db7d25eeSGreg Roach */ 126c1010edaSGreg Roach public function testRoundedDownToFiveYears() 127c1010edaSGreg Roach { 128c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 129db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 130db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 131db7d25eeSGreg Roach 132c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 133db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1844'); 134db7d25eeSGreg Roach 135ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 136db7d25eeSGreg Roach 137342dcecdSGreg Roach $this->assertSame('40', $column->generate($individual, $individual)); 138db7d25eeSGreg Roach } 139db7d25eeSGreg Roach} 140