Issues (3640)

Facade/GetAclUserHasGroupCollectionTest.php (1 issue)

1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerTest\Zed\Acl\Business\Facade;
9
10
use Codeception\Test\Unit;
11
use Generated\Shared\Transfer\AclUserHasGroupConditionsTransfer;
12
use Generated\Shared\Transfer\AclUserHasGroupCriteriaTransfer;
13
use SprykerTest\Zed\Acl\AclBusinessTester;
14
15
/**
16
 * Auto-generated group annotations
17
 *
18
 * @group SprykerTest
19
 * @group Zed
20
 * @group Acl
21
 * @group Business
22
 * @group Facade
23
 * @group GetAclUserHasGroupCollectionTest
24
 * Add your own group annotations below this line
25
 */
26
class GetAclUserHasGroupCollectionTest extends Unit
27
{
28
    /**
29
     * @var \SprykerTest\Zed\Acl\AclBusinessTester
30
     */
31
    protected AclBusinessTester $tester;
32
33
    /**
34
     * @return void
35
     */
36
    public function setUp(): void
37
    {
38
        parent::setUp();
39
40
        $this->tester->ensureAclUserHasGroupTableIsEmpty();
41
    }
42
43
    /**
44
     * @dataProvider getReturnsAllEntitiesDataProvider
45
     *
46
     * @param \Generated\Shared\Transfer\AclUserHasGroupCriteriaTransfer $aclUserHasGroupCriteriaTransfer
47
     *
48
     * @return void
49
     */
50
    public function testReturnsAllEntities(AclUserHasGroupCriteriaTransfer $aclUserHasGroupCriteriaTransfer): void
51
    {
52
        // Arrange
53
        $idUser1 = $this->tester->haveUser()->getIdUserOrFail();
54
        $idUser2 = $this->tester->haveUser()->getIdUserOrFail();
55
        $idAclGroup1 = $this->tester->haveGroup()->getIdAclGroupOrFail();
56
        $idAclGroup2 = $this->tester->haveGroup()->getIdAclGroupOrFail();
57
        $this->tester->haveAclUserHasGroup($idUser1, $idAclGroup1);
58
        $this->tester->haveAclUserHasGroup($idUser2, $idAclGroup2);
59
        $expectedUserIds = [$idUser1, $idUser2];
60
61
        // Act
62
        $aclUserHasGroupCollectionTransfer = $this->tester
63
            ->getFacade()
64
            ->getAclUserHasGroupCollection($aclUserHasGroupCriteriaTransfer);
65
66
        // Assert
67
        $this->assertCount(2, $aclUserHasGroupCollectionTransfer->getAclUserHasGroups());
68
        $this->assertContains(
69
            $aclUserHasGroupCollectionTransfer->getAclUserHasGroups()->offsetGet(0)->getUserOrFail()->getIdUser(),
70
            $expectedUserIds,
71
        );
72
        $this->assertContains(
73
            $aclUserHasGroupCollectionTransfer->getAclUserHasGroups()->offsetGet(1)->getUserOrFail()->getIdUser(),
74
            $expectedUserIds,
75
        );
76
    }
77
78
    /**
79
     * @return void
80
     */
81
    public function testFiltersByUserIds(): void
82
    {
83
        // Arrange
84
        $idUser1 = $this->tester->haveUser()->getIdUserOrFail();
85
        $idUser2 = $this->tester->haveUser()->getIdUserOrFail();
86
        $idAclGroup = $this->tester->haveGroup()->getIdAclGroupOrFail();
87
        $this->tester->haveAclUserHasGroup($idUser1, $idAclGroup);
88
        $this->tester->haveAclUserHasGroup($idUser2, $idAclGroup);
89
90
        $aclUserHasGroupCriteriaTransfer = (new AclUserHasGroupCriteriaTransfer())
91
            ->setAclUserHasGroupConditions((new AclUserHasGroupConditionsTransfer())->addIdUser($idUser1));
92
93
        // Act
94
        $aclUserHasGroupCollectionTransfer = $this->tester
95
            ->getFacade()
96
            ->getAclUserHasGroupCollection($aclUserHasGroupCriteriaTransfer);
97
98
        // Assert
99
        $this->assertCount(1, $aclUserHasGroupCollectionTransfer->getAclUserHasGroups());
100
        $this->assertSame(
101
            $idUser1,
102
            $aclUserHasGroupCollectionTransfer->getAclUserHasGroups()->offsetGet(0)->getUserOrFail()->getIdUser(),
103
        );
104
    }
105
106
    /**
107
     * @return void
108
     */
109
    public function testFiltersByAclGroupName(): void
110
    {
111
        // Arrange
112
        $idUser = $this->tester->haveUser()->getIdUserOrFail();
113
        $groupTransfer1 = $this->tester->haveGroup();
114
        $groupTransfer2 = $this->tester->haveGroup();
115
        $this->tester->haveAclUserHasGroup($idUser, $groupTransfer1->getIdAclGroupOrFail());
116
        $this->tester->haveAclUserHasGroup($idUser, $groupTransfer2->getIdAclGroupOrFail());
117
118
        $aclUserHasGroupCriteriaTransfer = (new AclUserHasGroupCriteriaTransfer())
119
            ->setAclUserHasGroupConditions((new AclUserHasGroupConditionsTransfer())->addGroupName($groupTransfer1->getNameOrFail()));
120
121
        // Act
122
        $aclUserHasGroupCollectionTransfer = $this->tester
123
            ->getFacade()
124
            ->getAclUserHasGroupCollection($aclUserHasGroupCriteriaTransfer);
125
126
        // Assert
127
        $this->assertCount(1, $aclUserHasGroupCollectionTransfer->getAclUserHasGroups());
128
        $this->assertSame(
129
            $groupTransfer1->getIdAclGroupOrFail(),
130
            $aclUserHasGroupCollectionTransfer->getAclUserHasGroups()->offsetGet(0)->getGroupOrFail()->getIdAclGroupOrFail(),
131
        );
132
    }
133
134
    /**
135
     * @return array<string, list<\Generated\Shared\Transfer\AclUserHasGroupCriteriaTransfer>>
0 ignored issues
show
Documentation Bug introduced by
The doc comment array<string, list<\Gene...GroupCriteriaTransfer>> at position 4 could not be parsed: Expected '>' at position 4, but found 'list'.
Loading history...
136
     */
137
    protected function getReturnsAllEntitiesDataProvider(): array
138
    {
139
        return [
140
            'When conditions transfer is not set' => [
141
                new AclUserHasGroupCriteriaTransfer(),
142
            ],
143
            'When conditions transfer is set without properties' => [
144
                (new AclUserHasGroupCriteriaTransfer())->setAclUserHasGroupConditions(
145
                    new AclUserHasGroupConditionsTransfer(),
146
                ),
147
            ],
148
        ];
149
    }
150
}
151