xref: /webtrees/tests/app/FactTest.php (revision 10d6d9731aa2243593201cbd4940c30895894f40)
1a25f0a04SGreg Roach<?php
23976b470SGreg Roach
3a25f0a04SGreg Roach/**
4a25f0a04SGreg Roach * webtrees: online genealogy
55bfc6897SGreg Roach * Copyright (C) 2022 webtrees development team
6a25f0a04SGreg Roach * This program is free software: you can redistribute it and/or modify
7a25f0a04SGreg Roach * it under the terms of the GNU General Public License as published by
8a25f0a04SGreg Roach * the Free Software Foundation, either version 3 of the License, or
9a25f0a04SGreg Roach * (at your option) any later version.
10a25f0a04SGreg Roach * This program is distributed in the hope that it will be useful,
11a25f0a04SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12a25f0a04SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13a25f0a04SGreg Roach * GNU General Public License for more details.
14a25f0a04SGreg Roach * You should have received a copy of the GNU General Public License
1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
16a25f0a04SGreg Roach */
17fcfa147eSGreg Roach
18e7f56f2aSGreg Roachdeclare(strict_types=1);
19e7f56f2aSGreg Roach
2084e2cf4eSGreg Roachnamespace Fisharebest\Webtrees;
21a25f0a04SGreg Roach
22a25f0a04SGreg Roach/**
23a25f0a04SGreg Roach * Test harness for the class Fact
245a3d686cSGreg Roach *
255a3d686cSGreg Roach * @covers \Fisharebest\Webtrees\Fact
26a25f0a04SGreg Roach */
27e5a6b4d4SGreg Roachclass FactTest extends TestCase
28c1010edaSGreg Roach{
29*10d6d973SGreg Roach    protected static bool $uses_database = true;
30*10d6d973SGreg Roach
31a25f0a04SGreg Roach    /**
3252348eb8SGreg Roach     * @return void
33a25f0a04SGreg Roach     */
34*10d6d973SGreg Roach    public function testAttribute(): void
35c1010edaSGreg Roach    {
36*10d6d973SGreg Roach        $individual = $this->createStub(Individual::class);
37*10d6d973SGreg Roach        $individual->method('tag')->willReturn('INDI');
38*10d6d973SGreg Roach
39*10d6d973SGreg Roach        $fact = new Fact("1 BIRT\n2 ADDR address", $individual, '');
40*10d6d973SGreg Roach        self::assertSame('address', $fact->attribute('ADDR'));
41*10d6d973SGreg Roach
42*10d6d973SGreg Roach        $fact = new Fact("1 BIRT\n2 ADDR line 1\n3 CONT line 2", $individual, '');
43*10d6d973SGreg Roach        self::assertSame("line 1\nline 2", $fact->attribute('ADDR'));
44*10d6d973SGreg Roach    }
45*10d6d973SGreg Roach
46*10d6d973SGreg Roach    /**
47*10d6d973SGreg Roach     * @return void
48*10d6d973SGreg Roach     *
49*10d6d973SGreg Roach     * @see https://github.com/fisharebest/webtrees/issues/4417
50*10d6d973SGreg Roach     */
51*10d6d973SGreg Roach    public function testIssue4417(): void
52*10d6d973SGreg Roach    {
53*10d6d973SGreg Roach        $individual = $this->createStub(Individual::class);
54*10d6d973SGreg Roach        $individual->method('tag')->willReturn('INDI');
55*10d6d973SGreg Roach
56*10d6d973SGreg Roach        $fact = new Fact("1 BIRT\n2 PLACXYZ\n3 CONT place", $individual, '');
57*10d6d973SGreg Roach        self::assertSame('', $fact->attribute('PLAC'));
58*10d6d973SGreg Roach
59*10d6d973SGreg Roach        $fact = new Fact("1 BIRT\n2 PLACXYZ place", $individual, '');
60*10d6d973SGreg Roach        self::assertSame('', $fact->attribute('PLAC'));
61a25f0a04SGreg Roach    }
62a25f0a04SGreg Roach}
63