xref: /webtrees/tests/app/Census/CensusColumnAgeMaleTest.php (revision 3cfcc809af53e831fa6cafac7b274a2cb407db6e)
1db7d25eeSGreg Roach<?php
23976b470SGreg Roach
3db7d25eeSGreg Roach/**
4db7d25eeSGreg Roach * webtrees: online genealogy
58fcd0d32SGreg Roach * Copyright (C) 2019 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 */
17e7f56f2aSGreg Roachdeclare(strict_types=1);
18e7f56f2aSGreg Roach
19db7d25eeSGreg Roachnamespace Fisharebest\Webtrees\Census;
20db7d25eeSGreg Roach
21db7d25eeSGreg Roachuse Fisharebest\Webtrees\Date;
22ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual;
23*3cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase;
24db7d25eeSGreg Roach
25db7d25eeSGreg Roach/**
26db7d25eeSGreg Roach * Test harness for the class CensusColumnAgeMale
27db7d25eeSGreg Roach */
28*3cfcc809SGreg Roachclass CensusColumnAgeMaleTest extends TestCase
29c1010edaSGreg Roach{
30db7d25eeSGreg Roach    /**
3115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale
3215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
3352348eb8SGreg Roach     *
3452348eb8SGreg Roach     * @return void
35db7d25eeSGreg Roach     */
369b802b22SGreg Roach    public function testMale(): void
37c1010edaSGreg Roach    {
380ecdbde6SGreg Roach        $individual = $this->createMock(Individual::class);
390ecdbde6SGreg Roach        $individual->method('sex')->willReturn('M');
400ecdbde6SGreg Roach        $individual->method('getEstimatedBirthDate')->willReturn(new Date('01 JAN 1800'));
41db7d25eeSGreg Roach
420ecdbde6SGreg Roach        $census = $this->createMock(CensusInterface::class);
430ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('30 JUN 1832');
44db7d25eeSGreg Roach
45ef21b467SGreg Roach        $column = new CensusColumnAgeMale($census, '', '');
46db7d25eeSGreg Roach
47342dcecdSGreg Roach        $this->assertSame('32', $column->generate($individual, $individual));
48db7d25eeSGreg Roach    }
49db7d25eeSGreg Roach
50db7d25eeSGreg Roach    /**
5115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale
5215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
5352348eb8SGreg Roach     *
5452348eb8SGreg Roach     * @return void
55db7d25eeSGreg Roach     */
569b802b22SGreg Roach    public function testFemale(): void
57c1010edaSGreg Roach    {
580ecdbde6SGreg Roach        $individual = $this->createMock(Individual::class);
590ecdbde6SGreg Roach        $individual->method('sex')->willReturn('F');
60db7d25eeSGreg Roach
610ecdbde6SGreg Roach        $census = $this->createMock(CensusInterface::class);
62db7d25eeSGreg Roach
63ef21b467SGreg Roach        $column = new CensusColumnAgeMale($census, '', '');
64db7d25eeSGreg Roach
65342dcecdSGreg Roach        $this->assertSame('', $column->generate($individual, $individual));
66db7d25eeSGreg Roach    }
67db7d25eeSGreg Roach
68db7d25eeSGreg Roach    /**
6915d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale
7015d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
7152348eb8SGreg Roach     *
7252348eb8SGreg Roach     * @return void
73db7d25eeSGreg Roach     */
749b802b22SGreg Roach    public function testUnknownSex(): void
75c1010edaSGreg Roach    {
760ecdbde6SGreg Roach        $individual = $this->createMock(Individual::class);
770ecdbde6SGreg Roach        $individual->method('sex')->willReturn('U');
780ecdbde6SGreg Roach        $individual->method('getEstimatedBirthDate')->willReturn(new Date('01 JAN 1800'));
79db7d25eeSGreg Roach
800ecdbde6SGreg Roach        $census = $this->createMock(CensusInterface::class);
810ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('30 JUN 1832');
82db7d25eeSGreg Roach
83ef21b467SGreg Roach        $column = new CensusColumnAgeMale($census, '', '');
84db7d25eeSGreg Roach
85342dcecdSGreg Roach        $this->assertSame('32', $column->generate($individual, $individual));
86db7d25eeSGreg Roach    }
87db7d25eeSGreg Roach
88db7d25eeSGreg Roach    /**
8915d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMale
9015d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
9152348eb8SGreg Roach     *
9252348eb8SGreg Roach     * @return void
93db7d25eeSGreg Roach     */
949b802b22SGreg Roach    public function testLessThanOneYear(): void
95c1010edaSGreg Roach    {
960ecdbde6SGreg Roach        $individual = $this->createMock(Individual::class);
970ecdbde6SGreg Roach        $individual->method('sex')->willReturn('M');
980ecdbde6SGreg Roach        $individual->method('getEstimatedBirthDate')->willReturn(new Date('01 JAN 1800'));
99db7d25eeSGreg Roach
1000ecdbde6SGreg Roach        $census = $this->createMock(CensusInterface::class);
1010ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('30 JUN 1800');
102db7d25eeSGreg Roach
103ef21b467SGreg Roach        $column = new CensusColumnAgeMale($census, '', '');
104db7d25eeSGreg Roach
105342dcecdSGreg Roach        $this->assertSame('0', $column->generate($individual, $individual));
106db7d25eeSGreg Roach    }
107db7d25eeSGreg Roach}
108