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 CensusColumnAgeFemale5Years 23db7d25eeSGreg Roach */ 24*84e2cf4eSGreg Roachclass CensusColumnAgeFemale5YearsTest 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\CensusColumnAgeFemale5Years 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 43c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 44db7d25eeSGreg Roach 45ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 46db7d25eeSGreg Roach 47342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 48db7d25eeSGreg Roach } 49db7d25eeSGreg Roach 50db7d25eeSGreg Roach /** 5115d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 5215d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 53db7d25eeSGreg Roach */ 54c1010edaSGreg Roach public function testFemale() 55c1010edaSGreg Roach { 56c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 57db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 58db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 59db7d25eeSGreg Roach 60c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 61db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 62db7d25eeSGreg Roach 63ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 64db7d25eeSGreg Roach 65342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 66db7d25eeSGreg Roach } 67db7d25eeSGreg Roach 68db7d25eeSGreg Roach /** 6915d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 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 CensusColumnAgeFemale5Years($census, '', ''); 82db7d25eeSGreg Roach 83342dcecdSGreg Roach $this->assertSame('30', $column->generate($individual, $individual)); 84db7d25eeSGreg Roach } 85db7d25eeSGreg Roach 86db7d25eeSGreg Roach /** 8715d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 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('F'); 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 CensusColumnAgeFemale5Years($census, '', ''); 100db7d25eeSGreg Roach 101342dcecdSGreg Roach $this->assertSame('0', $column->generate($individual, $individual)); 102db7d25eeSGreg Roach } 103db7d25eeSGreg Roach 104db7d25eeSGreg Roach /** 10515d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 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('F'); 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 CensusColumnAgeFemale5Years($census, '', ''); 118db7d25eeSGreg Roach 119342dcecdSGreg Roach $this->assertSame('14', $column->generate($individual, $individual)); 120db7d25eeSGreg Roach } 121db7d25eeSGreg Roach 122db7d25eeSGreg Roach /** 12315d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 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('F'); 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 CensusColumnAgeFemale5Years($census, '', ''); 136db7d25eeSGreg Roach 137342dcecdSGreg Roach $this->assertSame('40', $column->generate($individual, $individual)); 138db7d25eeSGreg Roach } 139db7d25eeSGreg Roach} 140