xref: /webtrees/tests/app/Census/CensusColumnAgeMarriedTest.php (revision 5e933c21f8006e675d1df8bcedc634ee61f4aec2)
181d1be7aSGreg Roach<?php
23976b470SGreg Roach
381d1be7aSGreg Roach/**
481d1be7aSGreg Roach * webtrees: online genealogy
5*5e933c21SGreg Roach * Copyright (C) 2020 webtrees development team
681d1be7aSGreg Roach * This program is free software: you can redistribute it and/or modify
781d1be7aSGreg Roach * it under the terms of the GNU General Public License as published by
881d1be7aSGreg Roach * the Free Software Foundation, either version 3 of the License, or
981d1be7aSGreg Roach * (at your option) any later version.
1081d1be7aSGreg Roach * This program is distributed in the hope that it will be useful,
1181d1be7aSGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
1281d1be7aSGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1381d1be7aSGreg Roach * GNU General Public License for more details.
1481d1be7aSGreg Roach * You should have received a copy of the GNU General Public License
1581d1be7aSGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
1681d1be7aSGreg Roach */
17fcfa147eSGreg Roach
18e7f56f2aSGreg Roachdeclare(strict_types=1);
19e7f56f2aSGreg Roach
2081d1be7aSGreg Roachnamespace Fisharebest\Webtrees\Census;
2181d1be7aSGreg Roach
2281d1be7aSGreg Roachuse Fisharebest\Webtrees\Date;
23ddf438a5SGreg Roachuse Fisharebest\Webtrees\Fact;
24ddf438a5SGreg Roachuse Fisharebest\Webtrees\Family;
25ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual;
263cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase;
2739ca88baSGreg Roachuse Illuminate\Support\Collection;
2881d1be7aSGreg Roach
2981d1be7aSGreg Roach/**
3081d1be7aSGreg Roach * Test harness for the class CensusColumnAgeMarried
3181d1be7aSGreg Roach */
323cfcc809SGreg Roachclass CensusColumnAgeMarriedTest extends TestCase
33c1010edaSGreg Roach{
3481d1be7aSGreg Roach    /**
3515d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMarried
3615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
3752348eb8SGreg Roach     *
3852348eb8SGreg Roach     * @return void
3981d1be7aSGreg Roach     */
409b802b22SGreg Roach    public function testAgeMarried(): void
41c1010edaSGreg Roach    {
42*5e933c21SGreg Roach        $fact = self::createMock(Fact::class);
430ecdbde6SGreg Roach        $fact->method('date')->willReturn(new Date('01 DEC 1859'));
4481d1be7aSGreg Roach
45*5e933c21SGreg Roach        $family = self::createMock(Family::class);
460ecdbde6SGreg Roach        $family->method('facts')->with(['MARR'], true)->willReturn(new Collection([$fact]));
4781d1be7aSGreg Roach
48*5e933c21SGreg Roach        $individual = self::createMock(Individual::class);
490ecdbde6SGreg Roach        $individual->method('getBirthDate')->willReturn(new Date('15 MAR 1840'));
500ecdbde6SGreg Roach        $individual->method('spouseFamilies')->willReturn(new Collection([$family]));
5181d1be7aSGreg Roach
52*5e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
530ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('01 JUN 1860');
5481d1be7aSGreg Roach
5581d1be7aSGreg Roach        $column = new CensusColumnAgeMarried($census, '', '');
5681d1be7aSGreg Roach
57*5e933c21SGreg Roach        self::assertSame('19', $column->generate($individual, $individual));
5881d1be7aSGreg Roach    }
5981d1be7aSGreg Roach
6081d1be7aSGreg Roach    /**
6115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMarried
6215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
6352348eb8SGreg Roach     *
6452348eb8SGreg Roach     * @return void
6581d1be7aSGreg Roach     */
669b802b22SGreg Roach    public function testNoBirthDate(): void
67c1010edaSGreg Roach    {
68*5e933c21SGreg Roach        $individual = self::createMock(Individual::class);
690ecdbde6SGreg Roach        $individual->method('getBirthDate')->willReturn(new Date(''));
700ecdbde6SGreg Roach        $individual->method('spouseFamilies')->willReturn(new Collection());
713e983931SGreg Roach
72*5e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
730ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('01 JUN 1860');
743e983931SGreg Roach
753e983931SGreg Roach        $column = new CensusColumnAgeMarried($census, '', '');
763e983931SGreg Roach
77*5e933c21SGreg Roach        self::assertSame('', $column->generate($individual, $individual));
7881d1be7aSGreg Roach    }
7981d1be7aSGreg Roach
8081d1be7aSGreg Roach    /**
8115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMarried
8215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
8352348eb8SGreg Roach     *
8452348eb8SGreg Roach     * @return void
8581d1be7aSGreg Roach     */
869b802b22SGreg Roach    public function testNoMarriage(): void
87c1010edaSGreg Roach    {
88*5e933c21SGreg Roach        $family = self::createMock(Family::class);
890ecdbde6SGreg Roach        $family->method('facts')->with(['MARR'])->willReturn(new Collection());
9081d1be7aSGreg Roach
91*5e933c21SGreg Roach        $individual = self::createMock(Individual::class);
920ecdbde6SGreg Roach        $individual->method('getBirthDate')->willReturn(new Date(''));
930ecdbde6SGreg Roach        $individual->method('spouseFamilies')->willReturn(new Collection([$family]));
9481d1be7aSGreg Roach
95*5e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
960ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('01 JUN 1860');
9781d1be7aSGreg Roach
9881d1be7aSGreg Roach        $column = new CensusColumnAgeMarried($census, '', '');
9981d1be7aSGreg Roach
100*5e933c21SGreg Roach        self::assertSame('', $column->generate($individual, $individual));
10181d1be7aSGreg Roach    }
10281d1be7aSGreg Roach
10381d1be7aSGreg Roach    /**
10415d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnAgeMarried
10515d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
10652348eb8SGreg Roach     *
10752348eb8SGreg Roach     * @return void
10881d1be7aSGreg Roach     */
1099b802b22SGreg Roach    public function testNoSpouseFamily(): void
110c1010edaSGreg Roach    {
111*5e933c21SGreg Roach        $individual = self::createMock(Individual::class);
1120ecdbde6SGreg Roach        $individual->method('getBirthDate')->willReturn(new Date('15 MAR 1840'));
1130ecdbde6SGreg Roach        $individual->method('spouseFamilies')->willReturn(new Collection());
11481d1be7aSGreg Roach
115*5e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
1160ecdbde6SGreg Roach        $census->method('censusDate')->willReturn('01 JUN 1860');
11781d1be7aSGreg Roach
11881d1be7aSGreg Roach        $column = new CensusColumnAgeMarried($census, '', '');
11981d1be7aSGreg Roach
120*5e933c21SGreg Roach        self::assertSame('', $column->generate($individual, $individual));
12181d1be7aSGreg Roach    }
12281d1be7aSGreg Roach}
123