xref: /webtrees/tests/app/Census/CensusColumnAgeMale5YearsTest.php (revision c314ecc9a18e5e740a1c0fcb7379ef541f969dc5)
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 CensusColumnAgeMale5Years5Years
25db7d25eeSGreg Roach */
26db7d25eeSGreg Roachclass CensusColumnAgeMale5YearsTest 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\CensusColumnAgeMale5Years
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		$individual->shouldReceive('getEstimatedBirthDate')->andReturn(new Date('01 JAN 1800'));
42db7d25eeSGreg Roach
43*c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
44db7d25eeSGreg Roach		$census->shouldReceive('censusDate')->andReturn('30 JUN 1830');
45db7d25eeSGreg Roach
46ef21b467SGreg Roach		$column = new CensusColumnAgeMale5Years($census, '', '');
47db7d25eeSGreg Roach
48db7d25eeSGreg Roach		$this->assertSame('30', $column->generate($individual));
49db7d25eeSGreg Roach	}
50db7d25eeSGreg Roach
51db7d25eeSGreg Roach	/**
52db7d25eeSGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years
53db7d25eeSGreg Roach	 * @covers Fisharebest\Webtrees\Census\AbstractCensusColumn
54db7d25eeSGreg Roach	 */
55db7d25eeSGreg Roach	public function testFemale() {
56*c314ecc9SGreg Roach		$individual = Mockery::mock('Fisharebest\Webtrees\Individual');
57db7d25eeSGreg Roach		$individual->shouldReceive('getSex')->andReturn('F');
58db7d25eeSGreg Roach
59*c314ecc9SGreg Roach		$census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
60db7d25eeSGreg Roach
61ef21b467SGreg Roach		$column = new CensusColumnAgeMale5Years($census, '', '');
62db7d25eeSGreg Roach
63db7d25eeSGreg Roach		$this->assertSame('', $column->generate($individual));
64db7d25eeSGreg Roach	}
65db7d25eeSGreg Roach
66db7d25eeSGreg Roach	/**
67db7d25eeSGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years
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 CensusColumnAgeMale5Years($census, '', '');
79db7d25eeSGreg Roach
80db7d25eeSGreg Roach		$this->assertSame('30', $column->generate($individual));
81db7d25eeSGreg Roach	}
82db7d25eeSGreg Roach
83db7d25eeSGreg Roach	/**
84db7d25eeSGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years
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('M');
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 CensusColumnAgeMale5Years($census, '', '');
96db7d25eeSGreg Roach
97db7d25eeSGreg Roach		$this->assertSame('0', $column->generate($individual));
98db7d25eeSGreg Roach	}
99db7d25eeSGreg Roach
100db7d25eeSGreg Roach	/**
101db7d25eeSGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years
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('M');
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 CensusColumnAgeMale5Years($census, '', '');
113db7d25eeSGreg Roach
114db7d25eeSGreg Roach		$this->assertSame('14', $column->generate($individual));
115db7d25eeSGreg Roach	}
116db7d25eeSGreg Roach
117db7d25eeSGreg Roach	/**
118db7d25eeSGreg Roach	 * @covers Fisharebest\Webtrees\Census\CensusColumnAgeMale5Years
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('M');
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 CensusColumnAgeMale5Years($census, '', '');
130db7d25eeSGreg Roach
131db7d25eeSGreg Roach		$this->assertSame('40', $column->generate($individual));
132db7d25eeSGreg Roach	}
133db7d25eeSGreg Roach}
134