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 CensusColumnAgeMale 24db7d25eeSGreg Roach */ 25c1010edaSGreg Roachclass CensusColumnAgeMaleTest 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\CensusColumnAgeMale 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 1832'); 47db7d25eeSGreg Roach 48ef21b467SGreg Roach $column = new CensusColumnAgeMale($census, '', ''); 49db7d25eeSGreg Roach 50*342dcecdSGreg Roach $this->assertSame('32', $column->generate($individual, $individual)); 51db7d25eeSGreg Roach } 52db7d25eeSGreg Roach 53db7d25eeSGreg Roach /** 5415d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 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 CensusColumnAgeMale($census, '', ''); 65db7d25eeSGreg Roach 66*342dcecdSGreg Roach $this->assertSame('', $column->generate($individual, $individual)); 67db7d25eeSGreg Roach } 68db7d25eeSGreg Roach 69db7d25eeSGreg Roach /** 7015d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 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 1832'); 81db7d25eeSGreg Roach 82ef21b467SGreg Roach $column = new CensusColumnAgeMale($census, '', ''); 83db7d25eeSGreg Roach 84*342dcecdSGreg Roach $this->assertSame('32', $column->generate($individual, $individual)); 85db7d25eeSGreg Roach } 86db7d25eeSGreg Roach 87db7d25eeSGreg Roach /** 8815d603e7SGreg Roach * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale 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 CensusColumnAgeMale($census, '', ''); 101db7d25eeSGreg Roach 102*342dcecdSGreg Roach $this->assertSame('0', $column->generate($individual, $individual)); 103db7d25eeSGreg Roach } 104db7d25eeSGreg Roach} 105