xref: /webtrees/tests/app/Census/CensusColumnBirthPlaceTest.php (revision 89f7189b61a494347591c99bdb92afb7d8b66e1b)
1ef21b467SGreg Roach<?php
23976b470SGreg Roach
3ef21b467SGreg Roach/**
4ef21b467SGreg Roach * webtrees: online genealogy
5*89f7189bSGreg Roach * Copyright (C) 2021 webtrees development team
6ef21b467SGreg Roach * This program is free software: you can redistribute it and/or modify
7ef21b467SGreg Roach * it under the terms of the GNU General Public License as published by
8ef21b467SGreg Roach * the Free Software Foundation, either version 3 of the License, or
9ef21b467SGreg Roach * (at your option) any later version.
10ef21b467SGreg Roach * This program is distributed in the hope that it will be useful,
11ef21b467SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12ef21b467SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13ef21b467SGreg Roach * GNU General Public License for more details.
14ef21b467SGreg Roach * You should have received a copy of the GNU General Public License
15*89f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
16ef21b467SGreg Roach */
17fcfa147eSGreg Roach
18e7f56f2aSGreg Roachdeclare(strict_types=1);
19e7f56f2aSGreg Roach
20ef21b467SGreg Roachnamespace Fisharebest\Webtrees\Census;
21ef21b467SGreg Roach
22ddf438a5SGreg Roachuse Fisharebest\Webtrees\Individual;
2352348eb8SGreg Roachuse Fisharebest\Webtrees\Place;
243cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase;
25ef21b467SGreg Roach
26ef21b467SGreg Roach/**
27ef21b467SGreg Roach * Test harness for the class CensusColumnBirthPlace
28ef21b467SGreg Roach */
293cfcc809SGreg Roachclass CensusColumnBirthPlaceTest extends TestCase
30c1010edaSGreg Roach{
31ef21b467SGreg Roach    /**
3216d0b7f7SRico Sonntag     * Get place mock.
3316d0b7f7SRico Sonntag     *
3416d0b7f7SRico Sonntag     * @param string $place Gedcom Place
3516d0b7f7SRico Sonntag     *
3652348eb8SGreg Roach     * @return Place
3716d0b7f7SRico Sonntag     */
385e933c21SGreg Roach    private function getPlaceMock(string $place): Place
39c1010edaSGreg Roach    {
405e933c21SGreg Roach        $placeMock = self::createMock(Place::class);
410ecdbde6SGreg Roach        $placeMock->method('gedcomName')->willReturn($place);
4216d0b7f7SRico Sonntag
4316d0b7f7SRico Sonntag        return $placeMock;
4416d0b7f7SRico Sonntag    }
4516d0b7f7SRico Sonntag
4616d0b7f7SRico Sonntag    /**
4715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
4815d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
4952348eb8SGreg Roach     *
5052348eb8SGreg Roach     * @return void
51ef21b467SGreg Roach     */
529b802b22SGreg Roach    public function testPlaceCountry(): void
53c1010edaSGreg Roach    {
545e933c21SGreg Roach        $individual = self::createMock(Individual::class);
550ecdbde6SGreg Roach        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Westminster, London, England'));
56ef21b467SGreg Roach
575e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
580ecdbde6SGreg Roach        $census->method('censusPlace')->willReturn('England');
59ef21b467SGreg Roach
60ef21b467SGreg Roach        $column = new CensusColumnBirthPlace($census, '', '');
61ef21b467SGreg Roach
625e933c21SGreg Roach        self::assertSame('Westminster, London', $column->generate($individual, $individual));
63ef21b467SGreg Roach    }
64ef21b467SGreg Roach
65ef21b467SGreg Roach    /**
6615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
6715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
6852348eb8SGreg Roach     *
6952348eb8SGreg Roach     * @return void
70ef21b467SGreg Roach     */
719b802b22SGreg Roach    public function testPlaceAndCountry(): void
72c1010edaSGreg Roach    {
735e933c21SGreg Roach        $individual = self::createMock(Individual::class);
740ecdbde6SGreg Roach        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('England'));
75ef21b467SGreg Roach
765e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
770ecdbde6SGreg Roach        $census->method('censusPlace')->willReturn('England');
78ef21b467SGreg Roach
79ef21b467SGreg Roach        $column = new CensusColumnBirthPlace($census, '', '');
80ef21b467SGreg Roach
815e933c21SGreg Roach        self::assertSame('', $column->generate($individual, $individual));
82ef21b467SGreg Roach    }
83ef21b467SGreg Roach
84ef21b467SGreg Roach    /**
8515d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
8615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
8752348eb8SGreg Roach     *
8852348eb8SGreg Roach     * @return void
89ef21b467SGreg Roach     */
909b802b22SGreg Roach    public function testDifferentCountry(): void
91c1010edaSGreg Roach    {
925e933c21SGreg Roach        $individual = self::createMock(Individual::class);
930ecdbde6SGreg Roach        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Paris, France'));
94ef21b467SGreg Roach
955e933c21SGreg Roach        $census = self::createMock(CensusInterface::class);
960ecdbde6SGreg Roach        $census->method('censusPlace')->willReturn('England');
97ef21b467SGreg Roach
98ef21b467SGreg Roach        $column = new CensusColumnBirthPlace($census, '', '');
99ef21b467SGreg Roach
1005e933c21SGreg Roach        self::assertSame('Paris, France', $column->generate($individual, $individual));
101ef21b467SGreg Roach    }
102ef21b467SGreg Roach}
103