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