1db7d25eeSGreg Roach<?php 2db7d25eeSGreg Roach 3db7d25eeSGreg Roach/** 4db7d25eeSGreg Roach * webtrees: online genealogy 5db7d25eeSGreg Roach * Copyright (C) 2015 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 Fisharebest\Webtrees\Individual; 21db7d25eeSGreg Roachuse Mockery; 22db7d25eeSGreg Roach 23db7d25eeSGreg Roach/** 24db7d25eeSGreg Roach * Test harness for the class CensusColumnAgeFemale5Years 25db7d25eeSGreg Roach */ 26db7d25eeSGreg Roachclass CensusColumnAgeFemale5YearsTest extends \PHPUnit_Framework_TestCase { 27db7d25eeSGreg Roach /** 28db7d25eeSGreg Roach * Delete mock objects 29db7d25eeSGreg Roach */ 30db7d25eeSGreg Roach public function tearDown() { 31db7d25eeSGreg Roach Mockery::close(); 32db7d25eeSGreg Roach } 33db7d25eeSGreg Roach 34db7d25eeSGreg Roach /** 35db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 36db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 37db7d25eeSGreg Roach */ 38db7d25eeSGreg Roach public function testMale() { 39*c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 40db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('M'); 41db7d25eeSGreg Roach 42*c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 43db7d25eeSGreg Roach 44ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 45db7d25eeSGreg Roach 46db7d25eeSGreg Roach $this->assertSame('', $column->generate($individual)); 47db7d25eeSGreg Roach } 48db7d25eeSGreg Roach 49db7d25eeSGreg Roach /** 50db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 51db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 52db7d25eeSGreg Roach */ 53db7d25eeSGreg Roach public function testFemale() { 54*c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 55db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 56db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 57db7d25eeSGreg Roach 58*c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 59db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 60db7d25eeSGreg Roach 61ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 62db7d25eeSGreg Roach 63db7d25eeSGreg Roach $this->assertSame('30', $column->generate($individual)); 64db7d25eeSGreg Roach } 65db7d25eeSGreg Roach 66db7d25eeSGreg Roach /** 67db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 68db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 69db7d25eeSGreg Roach */ 70db7d25eeSGreg Roach public function testUnknownSex() { 71*c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 72db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('U'); 73db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 74db7d25eeSGreg Roach 75*c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 76db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1830'); 77db7d25eeSGreg Roach 78ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 79db7d25eeSGreg Roach 80db7d25eeSGreg Roach $this->assertSame('30', $column->generate($individual)); 81db7d25eeSGreg Roach } 82db7d25eeSGreg Roach 83db7d25eeSGreg Roach /** 84db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 85db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 86db7d25eeSGreg Roach */ 87db7d25eeSGreg Roach public function testLessThanOneYear() { 88*c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 89db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 90db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 91db7d25eeSGreg Roach 92*c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 93db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1800'); 94db7d25eeSGreg Roach 95ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 96db7d25eeSGreg Roach 97db7d25eeSGreg Roach $this->assertSame('0', $column->generate($individual)); 98db7d25eeSGreg Roach } 99db7d25eeSGreg Roach 100db7d25eeSGreg Roach /** 101db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 102db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 103db7d25eeSGreg Roach */ 104db7d25eeSGreg Roach public function testLessThanFifteenYears() { 105*c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 106db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 107db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 108db7d25eeSGreg Roach 109*c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 110db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1814'); 111db7d25eeSGreg Roach 112ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 113db7d25eeSGreg Roach 114db7d25eeSGreg Roach $this->assertSame('14', $column->generate($individual)); 115db7d25eeSGreg Roach } 116db7d25eeSGreg Roach 117db7d25eeSGreg Roach /** 118db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\CensusColumnAgeFemale5Years 119db7d25eeSGreg Roach * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn 120db7d25eeSGreg Roach */ 121db7d25eeSGreg Roach public function testRoundedDownToFiveYears() { 122*c314ecc9SGreg Roach $individual = Mockery::mock('Fisharebest\Webtrees\Individual'); 123db7d25eeSGreg Roach $individual->shouldReceive('getSex')->andReturn('F'); 124db7d25eeSGreg Roach $individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800')); 125db7d25eeSGreg Roach 126*c314ecc9SGreg Roach $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface'); 127db7d25eeSGreg Roach $census->shouldReceive('censusDate')->andReturn('30 JUN 1844'); 128db7d25eeSGreg Roach 129ef21b467SGreg Roach $column = new CensusColumnAgeFemale5Years($census, '', ''); 130db7d25eeSGreg Roach 131db7d25eeSGreg Roach $this->assertSame('40', $column->generate($individual)); 132db7d25eeSGreg Roach } 133db7d25eeSGreg Roach} 134