Code Duplication    Length = 32-33 lines in 3 locations

Tests/Persister/InPlacePagerPersisterTest.php 3 locations

@@ 98-130 (lines=33) @@
95
        $this->assertTrue($called);
96
    }
97
98
    public function testShouldDispatchPreInsertObjectsEventWithExpectedArguments()
99
    {
100
        $objectPersisterMock = $this->createObjectPersisterMock();
101
102
        $options = ['indexName' => 'theIndex', 'typeName' => 'theType'];
103
104
        $registryMock = $this->createPersisterRegistryStub($objectPersisterMock);
105
        $dispatcher = new EventDispatcher();
106
107
        $persister = new InPlacePagerPersister($registryMock, $dispatcher);
108
109
        $objects = [new \stdClass(), new \stdClass()];
110
111
        $pager = $this->createPager($objects);
112
113
        $called = false;
114
        $dispatcher->addListener(Events::PRE_INSERT_OBJECTS, function($event) use(&$called, $pager, $objectPersisterMock, $objects, $options) {
115
            $called = true;
116
117
            $this->assertInstanceOf(PreInsertObjectsEvent::class, $event);
118
            $this->assertSame($pager, $event->getPager());
119
            $this->assertSame($objectPersisterMock, $event->getObjectPersister());
120
            $this->assertSame(
121
                ['batch_size' => 100, 'first_page' => 1, 'last_page' => 1] + $options,
122
                $event->getOptions()
123
            );
124
            $this->assertSame($objects, $event->getObjects());
125
        });
126
127
        $persister->insert($pager, $options);
128
129
        $this->assertTrue($called);
130
    }
131
132
    public function testShouldDispatchPostInsertObjectsEventWithExpectedArguments()
133
    {
@@ 132-164 (lines=33) @@
129
        $this->assertTrue($called);
130
    }
131
132
    public function testShouldDispatchPostInsertObjectsEventWithExpectedArguments()
133
    {
134
        $objectPersisterMock = $this->createObjectPersisterMock();
135
136
        $options = ['indexName' => 'theIndex', 'typeName' => 'theType'];
137
138
        $registryMock = $this->createPersisterRegistryStub($objectPersisterMock);
139
        $dispatcher = new EventDispatcher();
140
141
        $persister = new InPlacePagerPersister($registryMock, $dispatcher);
142
143
        $objects = [new \stdClass(), new \stdClass()];
144
145
        $pager = $this->createPager($objects);
146
147
        $called = false;
148
        $dispatcher->addListener(Events::POST_INSERT_OBJECTS, function($event) use(&$called, $pager, $objectPersisterMock, $objects, $options) {
149
            $called = true;
150
151
            $this->assertInstanceOf(PostInsertObjectsEvent::class, $event);
152
            $this->assertSame($pager, $event->getPager());
153
            $this->assertSame($objectPersisterMock, $event->getObjectPersister());
154
            $this->assertSame(
155
                ['batch_size' => 100, 'first_page' => 1, 'last_page' => 1] + $options,
156
                $event->getOptions()
157
            );
158
            $this->assertSame($objects, $event->getObjects());
159
        });
160
161
        $persister->insert($pager, $options);
162
163
        $this->assertTrue($called);
164
    }
165
166
    public function testShouldDispatchPostPersistEventWithExpectedArguments()
167
    {
@@ 166-197 (lines=32) @@
163
        $this->assertTrue($called);
164
    }
165
166
    public function testShouldDispatchPostPersistEventWithExpectedArguments()
167
    {
168
        $objectPersisterMock = $this->createObjectPersisterMock();
169
170
        $options = ['indexName' => 'theIndex', 'typeName' => 'theType'];
171
172
        $registryMock = $this->createPersisterRegistryStub($objectPersisterMock);
173
        $dispatcher = new EventDispatcher();
174
175
        $persister = new InPlacePagerPersister($registryMock, $dispatcher);
176
177
        $objects = [new \stdClass(), new \stdClass()];
178
179
        $pager = $this->createPager($objects);
180
181
        $called = false;
182
        $dispatcher->addListener(Events::POST_PERSIST, function($event) use(&$called, $pager, $objectPersisterMock, $objects, $options) {
183
            $called = true;
184
185
            $this->assertInstanceOf(PostPersistEvent::class, $event);
186
            $this->assertSame($pager, $event->getPager());
187
            $this->assertSame($objectPersisterMock, $event->getObjectPersister());
188
            $this->assertSame(
189
                ['batch_size' => 100, 'first_page' => 1, 'last_page' => 1] + $options,
190
                $event->getOptions()
191
            );
192
        });
193
194
        $persister->insert($pager, $options);
195
196
        $this->assertTrue($called);
197
    }
198
199
    public function testShouldCallObjectPersisterInsertManyMethodForEachPage()
200
    {