Issues (40)

tests/Doctrine/ORMResultTest.php (2 issues)

Labels
Severity
1
<?php
2
3
namespace Zenstruck\Porpaginas\Tests\Doctrine;
4
5
use Zenstruck\Porpaginas\Tests\Doctrine\Fixtures\ORMEntity;
6
use Zenstruck\Porpaginas\Tests\ResultTest;
7
8
abstract class ORMResultTest extends ResultTest
9
{
10
    use HasEntityManager;
11
12
    /**
13
     * @test
14
     */
15
    public function detaches_entity_from_em_on_iterate(): void
16
    {
17
        $result = \iterator_to_array($this->createResultWithItems(2))[0];
18
19
        $this->assertFalse($this->em->contains($result));
0 ignored issues
show
The method contains() does not exist on null. ( Ignorable by Annotation )

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

19
        $this->assertFalse($this->em->/** @scrutinizer ignore-call */ contains($result));

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
20
    }
21
22
    /**
23
     * @test
24
     */
25
    public function can_batch_update_results(): void
26
    {
27
        $result = $this->createResultWithItems(2);
28
        $values = \array_map(static function(ORMEntity $entity) { return $entity->value; }, \iterator_to_array($result));
29
30
        $this->assertSame(['value 1', 'value 2'], $values);
31
32
        $batchIterator = $result->batchProcessor();
0 ignored issues
show
The method batchProcessor() does not exist on Zenstruck\Porpaginas\Result. It seems like you code against a sub-type of Zenstruck\Porpaginas\Result such as Zenstruck\Porpaginas\Doctrine\ORMQueryResult. ( Ignorable by Annotation )

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

32
        /** @scrutinizer ignore-call */ 
33
        $batchIterator = $result->batchProcessor();
Loading history...
33
34
        $this->assertCount(2, $batchIterator);
35
36
        foreach ($batchIterator as $item) {
37
            $item->value = 'new '.$item->value;
38
        }
39
40
        $values = \array_map(
41
            static function(ORMEntity $entity) { return $entity->value; },
42
            $this->em->getRepository(ORMEntity::class)->findAll()
43
        );
44
45
        $this->assertSame(['new value 1', 'new value 2'], $values);
46
    }
47
48
    /**
49
     * @test
50
     */
51
    public function can_batch_delete_results(): void
52
    {
53
        $result = $this->createResultWithItems(2);
54
55
        $this->assertCount(2, $result);
56
57
        $batchIterator = $result->batchProcessor();
58
59
        $this->assertCount(2, $batchIterator);
60
61
        foreach ($batchIterator as $item) {
62
            $this->em->remove($item);
63
        }
64
65
        $this->assertCount(0, $this->em->getRepository(ORMEntity::class)->findAll());
66
    }
67
68
    protected function getExpectedValueAtPosition(int $position)
69
    {
70
        return new ORMEntity('value '.$position, $position);
71
    }
72
}
73