1db7d25eeSGreg Roach<?php 2db7d25eeSGreg Roach 3db7d25eeSGreg Roach/** 4db7d25eeSGreg Roach * webtrees: online genealogy 51062a142SGreg Roach * Copyright (C) 2018 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 */ 17db7d25eeSGreg Roachnamespace Fisharebest\Webtrees\Census; 18db7d25eeSGreg Roach 19db7d25eeSGreg Roachuse Fisharebest\Webtrees\Date; 20db7d25eeSGreg Roachuse Mockery; 21db7d25eeSGreg Roach 22db7d25eeSGreg Roach/** 23db7d25eeSGreg Roach * Test harness for the class CensusColumnAgeMale5Years5Years 24db7d25eeSGreg Roach */ 25c1010edaSGreg Roachclass CensusColumnAgeMale5YearsTest extends \PHPUnit\Framework\TestCase 26c1010edaSGreg Roach{ 27db7d25eeSGreg Roach /** 28db7d25eeSGreg Roach * Delete mock objects 29db7d25eeSGreg Roach */ 30c1010edaSGreg Roach public function tearDown() 31c1010edaSGreg Roach { 32db7d25eeSGreg Roach Mockery::close(); 33db7d25eeSGreg Roach } 34db7d25eeSGreg Roach 35db7d25eeSGreg Roach /** 3615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 3715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 38db7d25eeSGreg Roach */ 39c1010edaSGreg Roach public function testMale() 40c1010edaSGreg Roach { 41c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 42db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 43db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 44db7d25eeSGreg Roach 45c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 46db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 47db7d25eeSGreg Roach 48ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 49db7d25eeSGreg Roach 50*342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 51db7d25eeSGreg Roach } 52db7d25eeSGreg Roach 53db7d25eeSGreg Roach /** 5415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 5515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 56db7d25eeSGreg Roach */ 57c1010edaSGreg Roach public function testFemale() 58c1010edaSGreg Roach { 59c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 60db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 61db7d25eeSGreg Roach 62c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 63db7d25eeSGreg Roach 64ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 65db7d25eeSGreg Roach 66*342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 67db7d25eeSGreg Roach } 68db7d25eeSGreg Roach 69db7d25eeSGreg Roach /** 7015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 7115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 72db7d25eeSGreg Roach */ 73c1010edaSGreg Roach public function testUnknownSex() 74c1010edaSGreg Roach { 75c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 76db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('U'); 77db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 78db7d25eeSGreg Roach 79c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 80db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 81db7d25eeSGreg Roach 82ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 83db7d25eeSGreg Roach 84*342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 85db7d25eeSGreg Roach } 86db7d25eeSGreg Roach 87db7d25eeSGreg Roach /** 8815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 8915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 90db7d25eeSGreg Roach */ 91c1010edaSGreg Roach public function testLessThanOneYear() 92c1010edaSGreg Roach { 93c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 94db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 95db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 96db7d25eeSGreg Roach 97c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 98db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1800'); 99db7d25eeSGreg Roach 100ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 101db7d25eeSGreg Roach 102*342dcecdSGreg Roach $this->assertSame('0', $column->generate($individual, $individual)); 103db7d25eeSGreg Roach } 104db7d25eeSGreg Roach 105db7d25eeSGreg Roach /** 10615d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 10715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 108db7d25eeSGreg Roach */ 109c1010edaSGreg Roach public function testLessThanFifteenYears() 110c1010edaSGreg Roach { 111c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 112db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 113db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 114db7d25eeSGreg Roach 115c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 116db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1814'); 117db7d25eeSGreg Roach 118ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 119db7d25eeSGreg Roach 120*342dcecdSGreg Roach $this->assertSame('14', $column->generate($individual, $individual)); 121db7d25eeSGreg Roach } 122db7d25eeSGreg Roach 123db7d25eeSGreg Roach /** 12415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years 12515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 126db7d25eeSGreg Roach */ 127c1010edaSGreg Roach public function testRoundedDownToFiveYears() 128c1010edaSGreg Roach { 129c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 130db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 131db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 132db7d25eeSGreg Roach 133c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 134db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1844'); 135db7d25eeSGreg Roach 136ef21b467SGreg Roach $column = new CensusColumnAgeMale5Years($census, '', ''); 137db7d25eeSGreg Roach 138*342dcecdSGreg Roach $this->assertSame('40', $column->generate($individual, $individual)); 139db7d25eeSGreg Roach } 140db7d25eeSGreg Roach} 141