Issues (281)

Branch: master

src/Backend/Modules/Faq/Tests/Engine/ModelTest.php (1 issue)

1
<?php
2
3
namespace Backend\Modules\Faq\Tests\Engine;
4
5
use Backend\Modules\Faq\DataFixtures\LoadFaqCategories;
6
use Backend\Modules\Faq\Engine\Model;
7
use Backend\Core\Tests\BackendWebTestCase;
8
use Symfony\Bundle\FrameworkBundle\Client;
9
10
final class ModelTest extends BackendWebTestCase
11
{
12
    public function testInsertingFaqCategory(): void
13
    {
14
        $categoryId = Model::insertCategory(
15
            LoadFaqCategories::FAQ_CATEGORY_DATA,
16
            LoadFaqCategories::FAQ_CATEGORY_META_DATA
17
        );
18
19
        $addedCategory = Model::getCategory($categoryId);
20
21
        self::assertEquals($categoryId, $addedCategory['id']);
22
        self::assertEquals(LoadFaqCategories::FAQ_CATEGORY_DATA['language'], $addedCategory['language']);
23
        self::assertArrayHasKey('meta_id', $addedCategory);
24
        self::assertEquals(LoadFaqCategories::FAQ_CATEGORY_DATA['title'], $addedCategory['title']);
25
        self::assertEquals(LoadFaqCategories::FAQ_CATEGORY_DATA['sequence'], $addedCategory['sequence']);
26
    }
27
28
    public function testIfCategoryExists(Client $client): void
29
    {
30
        $this->loadFixtures(
31
            $client,
32
            [
33
                LoadFaqCategories::class,
34
            ]
35
        );
36
37
        self::assertTrue(Model::existsCategory(LoadFaqCategories::getCategoryId()));
38
        self::assertFalse(Model::existsCategory(99));
39
    }
40
41
    public function testGeneratingCategoryUrl(Client $client): void
42
    {
43
        // new url
44
        self::assertEquals(
45
            LoadFaqCategories::FAQ_CATEGORY_SLUG,
46
            Model::getUrlForCategory(LoadFaqCategories::FAQ_CATEGORY_SLUG)
47
        );
48
49
        $this->loadFixtures(
50
            $client,
51
            [
52
                LoadFaqCategories::class,
53
            ]
54
        );
55
56
        // existing url, "2" is should be appended
57
        self::assertEquals(
58
            LoadFaqCategories::FAQ_CATEGORY_SLUG . '-2',
59
            Model::getUrlForCategory(LoadFaqCategories::FAQ_CATEGORY_SLUG)
60
        );
61
        // existing url with id
62
        self::assertEquals(
63
            LoadFaqCategories::FAQ_CATEGORY_SLUG,
64
            Model::getUrlForCategory(LoadFaqCategories::FAQ_CATEGORY_SLUG, LoadFaqCategories::getCategoryId())
65
        );
66
    }
67
68
    public function testEditCategory(Client $client): void
69
    {
70
        $this->loadFixtures(
71
            $client,
72
            [
73
                LoadFaqCategories::class,
74
            ]
75
        );
76
77
        $categoryData = [
78
            'id' => LoadFaqCategories::getCategoryId(),
79
            'language' => 'en',
80
            'title' => 'Test edit category',
81
            'extra_id' => 39,
82
        ];
83
84
        $categoryMetaData = [
85
            'id' => LoadFaqCategories::getMetaId(),
86
            'keywords' => 'Test edit category',
87
            'description' => 'Test edit category',
88
            'title' => 'Test edit category',
89
            'url' => 'test-edit-category',
90
        ];
91
92
        // update meta, there doesn't seems to be a function for this?
93
        $client->getContainer()->get('database')->update('meta', $categoryMetaData, 'id = ?', [$categoryMetaData['id']]);
94
95
        Model::updateCategory($categoryData);
96
97
        $editedCategory = Model::getCategory($categoryData['id']);
0 ignored issues
show
It seems like $categoryData['id'] can also be of type null; however, parameter $id of Backend\Modules\Faq\Engine\Model::getCategory() does only seem to accept integer, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

97
        $editedCategory = Model::getCategory(/** @scrutinizer ignore-type */ $categoryData['id']);
Loading history...
98
99
        self::assertEquals($categoryData['id'], $editedCategory['id']);
100
        self::assertEquals($categoryMetaData['id'], $editedCategory['meta_id']);
101
        self::assertEquals($categoryData['language'], $editedCategory['language']);
102
        self::assertEquals($categoryData['title'], $editedCategory['title']);
103
    }
104
105
    public function testDeleteCategory(Client $client): void
106
    {
107
        $this->loadFixtures(
108
            $client,
109
            [
110
                LoadFaqCategories::class,
111
            ]
112
        );
113
114
        $id = LoadFaqCategories::getCategoryId();
115
        self::assertTrue(Model::existsCategory($id));
116
        Model::deleteCategory($id);
117
        self::assertFalse(Model::existsCategory($id));
118
    }
119
}
120