Code Duplication    Length = 157-157 lines in 2 locations

Tests/Units/ODM/MongoDB/DocumentQueryRepositoryTests.php 1 location

@@ 34-190 (lines=157) @@
31
 *
32
 * @author Ivannis Suárez Jerez <[email protected]>
33
 */
34
class DocumentQueryRepositoryTests extends QueryRepositoryTestCase
35
{
36
    use DocumentManagerTestCaseTrait;
37
38
    /**
39
     * {@inheritdoc}
40
     */
41
    protected function randomValue()
42
    {
43
        $user = new User(UserId::next(), 'User-'.\rand(1, 100), \rand(1, 100), $this->faker->email);
44
45
        $user->setFax(new Phonenumber($this->faker->phoneNumber));
46
        foreach (range(1, 3) as $key) {
47
            $user->addPhonenumber(new Phonenumber($this->faker->phoneNumber));
48
        }
49
50
        $user->setMainRole($this->faker->randomElement(Role::values()));
51
        foreach (range(1, 3) as $key) {
52
            $user->addRole($this->faker->randomElement(Role::values()));
53
        }
54
55
        $user->addAddress(
56
            new Address(
57
                AddressId::next(),
58
                'Home',
59
                $this->faker->streetAddress,
60
                $this->faker->postcode,
61
                $this->faker->city,
62
                Coordinate::fromLatLng($this->faker->latitude, $this->faker->longitude)
63
            )
64
        );
65
66
        $user->addAddress(
67
            new Address(
68
                AddressId::next(),
69
                'Work',
70
                $this->faker->streetAddress,
71
                $this->faker->postcode,
72
                $this->faker->city,
73
                Coordinate::fromLatLng($this->faker->latitude, $this->faker->longitude)
74
            )
75
        );
76
77
        $user->setLanguageLevel('english', $this->faker->randomDigit);
78
        $user->setLanguageLevel('spanish', $this->faker->randomDigit);
79
        $user->setLanguageLevel('french', $this->faker->randomDigit);
80
81
        return $user;
82
    }
83
84
    /**
85
     * {@inheritdoc}
86
     */
87
    protected function uniqueValue()
88
    {
89
        $user = new User(UserId::next(), 'Methuselah', 1000, $this->faker->email);
90
91
        $user->setFax(new Phonenumber('+34-208-1234567'));
92
        $user->addPhonenumber(new Phonenumber('+34 685 165 267'));
93
        $user->addPhonenumber(new Phonenumber($this->faker->phoneNumber));
94
        $user->addPhonenumber(new Phonenumber($this->faker->phoneNumber));
95
96
        $user->setMainRole(Role::ROLE_ADMIN());
97
        $user->addRole(Role::ROLE_ADMIN());
98
        $user->addRole(Role::ROLE_ADMIN());
99
        $user->addRole(Role::ROLE_USER());
100
101
        $user->setLanguageLevel('english', 10);
102
        $user->setLanguageLevel('spanish', 7);
103
        $user->setLanguageLevel('french', 2.5);
104
105
        $user->addAddress(
106
            new Address(
107
                AddressId::next(),
108
                'Home',
109
                $this->faker->streetAddress,
110
                $this->faker->postcode,
111
                $this->faker->city,
112
                Coordinate::fromLatLng(41.390205, 2.154007)
113
            )
114
        );
115
116
        $user->addAddress(
117
            new Address(
118
                AddressId::next(),
119
                'Work',
120
                $this->faker->streetAddress,
121
                $this->faker->postcode,
122
                $this->faker->city,
123
                Coordinate::fromLatLng($this->faker->latitude, $this->faker->longitude)
124
            )
125
        );
126
127
        return $user;
128
    }
129
130
    /**
131
     * {@inheritdoc}
132
     */
133
    protected function emptyRepository()
134
    {
135
        return new DocumentQueryRepository($this->dm()->getRepository(User::class), $this->documentDataSourceFactory());
136
    }
137
138
    /**
139
     * {@inheritdoc}
140
     */
141
    protected function comparator()
142
    {
143
        return Comparator::by(Criteria::property('age'), Direction::DESC());
144
    }
145
146
    /**
147
     * Test get.
148
     */
149
    public function testGet()
150
    {
151
        parent::testGet();
152
153
        $this
154
            ->given($repository = $this->randomRepository())
155
            ->and($unique = $this->uniqueValue())
156
            ->and($friend = new User(UserId::next(), 'Ivan', 32, $this->faker->email))
157
            ->and($friend1 = new User(UserId::next(), 'Karel', 32, $this->faker->email))
158
            ->and($repository->persist($friend))
159
            ->and($repository->persist($friend1))
160
            ->and($unique->addFriend($friend))
161
            ->and($unique->addFriend($friend1))
162
            ->and($repository->persist($unique))
163
            ->when(
164
                /** @var User $object */
165
                $object = $repository->get($unique->id())
166
            )
167
            ->then()
168
                ->object($object->fullName())
169
                    ->isEqualTo(StringLiteral::fromNative('Methuselah'))
170
                ->integer($object->languagesLevel()->get('english'))
171
                    ->isEqualTo(10)
172
                ->boolean($object->mainRole()->is(Role::ROLE_ADMIN))
173
                    ->isTrue()
174
                ->array($object->roles()->toArray())
175
                    ->contains(Role::ROLE_ADMIN)
176
                ->array($object->phonenumbers()->toArray())
177
                    ->contains('+34 685 165 267')
178
                ->string($object->fax()->number())
179
                    ->isEqualTo('+34-208-1234567')
180
                ->array($object->addresses()->toArray())
181
                    ->object[0]->isInstanceOf(Address::class)
182
                ->string($object->addresses()->toArray()[0]->name())
183
                    ->isEqualTo('Home')
184
                ->object($object->addresses()->toArray()[0]->coordinate())
185
                    ->isEqualTo(Coordinate::fromLatLng(41.390205, 2.154007))
186
                ->integer($object->friends()->count())
187
                    ->isEqualTo(2)
188
        ;
189
    }
190
}
191

Tests/Units/ODM/MongoDB/DocumentRepositoryTests.php 1 location

@@ 35-191 (lines=157) @@
32
 *
33
 * @author Karel Osorio Ramírez <[email protected]>
34
 */
35
class DocumentRepositoryTests extends RepositoryTestCase
36
{
37
    use DocumentManagerTestCaseTrait;
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    protected function randomValue()
43
    {
44
        $user = new User(UserId::next(), 'User-'.\rand(1, 100), \rand(1, 100), $this->faker->email);
45
46
        $user->setFax(new Phonenumber($this->faker->phoneNumber));
47
        foreach (range(1, 3) as $key) {
48
            $user->addPhonenumber(new Phonenumber($this->faker->phoneNumber));
49
        }
50
51
        $user->setMainRole($this->faker->randomElement(Role::values()));
52
        foreach (range(1, 3) as $key) {
53
            $user->addRole($this->faker->randomElement(Role::values()));
54
        }
55
56
        $user->addAddress(
57
            new Address(
58
                AddressId::next(),
59
                'Home',
60
                $this->faker->streetAddress,
61
                $this->faker->postcode,
62
                $this->faker->city,
63
                Coordinate::fromLatLng($this->faker->latitude, $this->faker->longitude)
64
            )
65
        );
66
67
        $user->addAddress(
68
            new Address(
69
                AddressId::next(),
70
                'Work',
71
                $this->faker->streetAddress,
72
                $this->faker->postcode,
73
                $this->faker->city,
74
                Coordinate::fromLatLng($this->faker->latitude, $this->faker->longitude)
75
            )
76
        );
77
78
        $user->setLanguageLevel('english', $this->faker->randomDigit);
79
        $user->setLanguageLevel('spanish', $this->faker->randomDigit);
80
        $user->setLanguageLevel('french', $this->faker->randomDigit);
81
82
        return $user;
83
    }
84
85
    /**
86
     * {@inheritdoc}
87
     */
88
    protected function uniqueValue()
89
    {
90
        $user = new User(UserId::next(), 'Methuselah', 1000, $this->faker->email);
91
92
        $user->setFax(new Phonenumber('+34-208-1234567'));
93
        $user->addPhonenumber(new Phonenumber('+34 685 165 267'));
94
        $user->addPhonenumber(new Phonenumber($this->faker->phoneNumber));
95
        $user->addPhonenumber(new Phonenumber($this->faker->phoneNumber));
96
97
        $user->setMainRole(Role::ROLE_ADMIN());
98
        $user->addRole(Role::ROLE_ADMIN());
99
        $user->addRole(Role::ROLE_ADMIN());
100
        $user->addRole(Role::ROLE_USER());
101
102
        $user->setLanguageLevel('english', 10);
103
        $user->setLanguageLevel('spanish', 7);
104
        $user->setLanguageLevel('french', 2.5);
105
106
        $user->addAddress(
107
            new Address(
108
                AddressId::next(),
109
                'Home',
110
                $this->faker->streetAddress,
111
                $this->faker->postcode,
112
                $this->faker->city,
113
                Coordinate::fromLatLng(41.390205, 2.154007)
114
            )
115
        );
116
117
        $user->addAddress(
118
            new Address(
119
                AddressId::next(),
120
                'Work',
121
                $this->faker->streetAddress,
122
                $this->faker->postcode,
123
                $this->faker->city,
124
                Coordinate::fromLatLng($this->faker->latitude, $this->faker->longitude)
125
            )
126
        );
127
128
        return $user;
129
    }
130
131
    /**
132
     * {@inheritdoc}
133
     */
134
    protected function emptyRepository()
135
    {
136
        return new DocumentRepository($this->dm()->getRepository(User::class), $this->documentDataSourceFactory());
137
    }
138
139
    /**
140
     * {@inheritdoc}
141
     */
142
    protected function comparator()
143
    {
144
        return Comparator::by(Criteria::property('age'), Direction::DESC());
145
    }
146
147
    /**
148
     * Test get.
149
     */
150
    public function testGet()
151
    {
152
        parent::testGet();
153
154
        $this
155
            ->given($repository = $this->randomRepository())
156
            ->and($unique = $this->uniqueValue())
157
            ->and($friend = new User(UserId::next(), 'Ivan', 32, $this->faker->email))
158
            ->and($friend1 = new User(UserId::next(), 'Karel', 32, $this->faker->email))
159
            ->and($repository->persist($friend))
160
            ->and($repository->persist($friend1))
161
            ->and($unique->addFriend($friend))
162
            ->and($unique->addFriend($friend1))
163
            ->and($repository->persist($unique))
164
            ->when(
165
                /** @var User $object */
166
                $object = $repository->get($unique->id())
167
            )
168
            ->then()
169
                ->object($object->fullName())
170
                    ->isEqualTo(StringLiteral::fromNative('Methuselah'))
171
                ->integer($object->languagesLevel()->get('english'))
172
                    ->isEqualTo(10)
173
                ->boolean($object->mainRole()->is(Role::ROLE_ADMIN))
174
                    ->isTrue()
175
                ->array($object->roles()->toArray())
176
                    ->contains(Role::ROLE_ADMIN)
177
                ->array($object->phonenumbers()->toArray())
178
                    ->contains('+34 685 165 267')
179
                ->string($object->fax()->number())
180
                    ->isEqualTo('+34-208-1234567')
181
                ->array($object->addresses()->toArray())
182
                    ->object[0]->isInstanceOf(Address::class)
183
                ->string($object->addresses()->toArray()[0]->name())
184
                    ->isEqualTo('Home')
185
                ->object($object->addresses()->toArray()[0]->coordinate())
186
                    ->isEqualTo(Coordinate::fromLatLng(41.390205, 2.154007))
187
                ->integer($object->friends()->count())
188
                    ->isEqualTo(2)
189
        ;
190
    }
191
}
192