Code Duplication    Length = 51-51 lines in 3 locations

tests/Doctrine/Tests/ORM/Functional/NewOperatorTest.php 3 locations

@@ 537-587 (lines=51) @@
534
        );
535
    }
536
537
    public function testShouldSupportMultipleNewOperators()
538
    {
539
        $dql = "
540
            SELECT
541
                new CmsUserDTO(
542
                    u.name,
543
                    e.email
544
                ),
545
                new CmsAddressDTO(
546
                    a.country,
547
                    a.city
548
                )
549
            FROM
550
                Doctrine\Tests\Models\CMS\CmsUser u
551
            JOIN
552
                u.email e
553
            JOIN
554
                u.address a
555
            ORDER BY
556
                u.name";
557
558
        $query  = $this->_em->createQuery($dql);
559
        $result = $query->getResult();
560
561
        $this->assertCount(3, $result);
562
563
        $this->assertInstanceOf(CmsUserDTO::class, $result[0][0]);
564
        $this->assertInstanceOf(CmsUserDTO::class, $result[1][0]);
565
        $this->assertInstanceOf(CmsUserDTO::class, $result[2][0]);
566
567
        $this->assertInstanceOf(CmsAddressDTO::class, $result[0][1]);
568
        $this->assertInstanceOf(CmsAddressDTO::class, $result[1][1]);
569
        $this->assertInstanceOf(CmsAddressDTO::class, $result[2][1]);
570
571
        $this->assertEquals($this->fixtures[0]->name, $result[0][0]->name);
572
        $this->assertEquals($this->fixtures[1]->name, $result[1][0]->name);
573
        $this->assertEquals($this->fixtures[2]->name, $result[2][0]->name);
574
575
        $this->assertEquals($this->fixtures[0]->email->email, $result[0][0]->email);
576
        $this->assertEquals($this->fixtures[1]->email->email, $result[1][0]->email);
577
        $this->assertEquals($this->fixtures[2]->email->email, $result[2][0]->email);
578
579
580
        $this->assertEquals($this->fixtures[0]->address->city, $result[0][1]->city);
581
        $this->assertEquals($this->fixtures[1]->address->city, $result[1][1]->city);
582
        $this->assertEquals($this->fixtures[2]->address->city, $result[2][1]->city);
583
584
        $this->assertEquals($this->fixtures[0]->address->country, $result[0][1]->country);
585
        $this->assertEquals($this->fixtures[1]->address->country, $result[1][1]->country);
586
        $this->assertEquals($this->fixtures[2]->address->country, $result[2][1]->country);
587
    }
588
589
    public function testShouldSupportMultipleNewOperatorsWithAliases()
590
    {
@@ 589-639 (lines=51) @@
586
        $this->assertEquals($this->fixtures[2]->address->country, $result[2][1]->country);
587
    }
588
589
    public function testShouldSupportMultipleNewOperatorsWithAliases()
590
    {
591
        $dql = "
592
            SELECT
593
                new CmsUserDTO(
594
                    u.name,
595
                    e.email
596
                ) as cmsUser,
597
                new CmsAddressDTO(
598
                    a.country,
599
                    a.city
600
                ) as cmsAddress
601
            FROM
602
                Doctrine\Tests\Models\CMS\CmsUser u
603
            JOIN
604
                u.email e
605
            JOIN
606
                u.address a
607
            ORDER BY
608
                u.name";
609
610
        $query  = $this->_em->createQuery($dql);
611
        $result = $query->getResult();
612
613
        $this->assertCount(3, $result);
614
615
        $this->assertInstanceOf(CmsUserDTO::class, $result[0]['cmsUser']);
616
        $this->assertInstanceOf(CmsUserDTO::class, $result[1]['cmsUser']);
617
        $this->assertInstanceOf(CmsUserDTO::class, $result[2]['cmsUser']);
618
619
        $this->assertInstanceOf(CmsAddressDTO::class, $result[0]['cmsAddress']);
620
        $this->assertInstanceOf(CmsAddressDTO::class, $result[1]['cmsAddress']);
621
        $this->assertInstanceOf(CmsAddressDTO::class, $result[2]['cmsAddress']);
622
623
        $this->assertEquals($this->fixtures[0]->name, $result[0]['cmsUser']->name);
624
        $this->assertEquals($this->fixtures[1]->name, $result[1]['cmsUser']->name);
625
        $this->assertEquals($this->fixtures[2]->name, $result[2]['cmsUser']->name);
626
627
        $this->assertEquals($this->fixtures[0]->email->email, $result[0]['cmsUser']->email);
628
        $this->assertEquals($this->fixtures[1]->email->email, $result[1]['cmsUser']->email);
629
        $this->assertEquals($this->fixtures[2]->email->email, $result[2]['cmsUser']->email);
630
631
632
        $this->assertEquals($this->fixtures[0]->address->city, $result[0]['cmsAddress']->city);
633
        $this->assertEquals($this->fixtures[1]->address->city, $result[1]['cmsAddress']->city);
634
        $this->assertEquals($this->fixtures[2]->address->city, $result[2]['cmsAddress']->city);
635
636
        $this->assertEquals($this->fixtures[0]->address->country, $result[0]['cmsAddress']->country);
637
        $this->assertEquals($this->fixtures[1]->address->country, $result[1]['cmsAddress']->country);
638
        $this->assertEquals($this->fixtures[2]->address->country, $result[2]['cmsAddress']->country);
639
    }
640
641
    public function testShouldSupportMultipleNewOperatorsWithAndWithoutAliases()
642
    {
@@ 641-691 (lines=51) @@
638
        $this->assertEquals($this->fixtures[2]->address->country, $result[2]['cmsAddress']->country);
639
    }
640
641
    public function testShouldSupportMultipleNewOperatorsWithAndWithoutAliases()
642
    {
643
        $dql = "
644
            SELECT
645
                new CmsUserDTO(
646
                    u.name,
647
                    e.email
648
                ) as cmsUser,
649
                new CmsAddressDTO(
650
                    a.country,
651
                    a.city
652
                )
653
            FROM
654
                Doctrine\Tests\Models\CMS\CmsUser u
655
            JOIN
656
                u.email e
657
            JOIN
658
                u.address a
659
            ORDER BY
660
                u.name";
661
662
        $query  = $this->_em->createQuery($dql);
663
        $result = $query->getResult();
664
665
        $this->assertCount(3, $result);
666
667
        $this->assertInstanceOf(CmsUserDTO::class, $result[0]['cmsUser']);
668
        $this->assertInstanceOf(CmsUserDTO::class, $result[1]['cmsUser']);
669
        $this->assertInstanceOf(CmsUserDTO::class, $result[2]['cmsUser']);
670
671
        $this->assertInstanceOf(CmsAddressDTO::class, $result[0][0]);
672
        $this->assertInstanceOf(CmsAddressDTO::class, $result[1][0]);
673
        $this->assertInstanceOf(CmsAddressDTO::class, $result[2][0]);
674
675
        $this->assertEquals($this->fixtures[0]->name, $result[0]['cmsUser']->name);
676
        $this->assertEquals($this->fixtures[1]->name, $result[1]['cmsUser']->name);
677
        $this->assertEquals($this->fixtures[2]->name, $result[2]['cmsUser']->name);
678
679
        $this->assertEquals($this->fixtures[0]->email->email, $result[0]['cmsUser']->email);
680
        $this->assertEquals($this->fixtures[1]->email->email, $result[1]['cmsUser']->email);
681
        $this->assertEquals($this->fixtures[2]->email->email, $result[2]['cmsUser']->email);
682
683
684
        $this->assertEquals($this->fixtures[0]->address->city, $result[0][0]->city);
685
        $this->assertEquals($this->fixtures[1]->address->city, $result[1][0]->city);
686
        $this->assertEquals($this->fixtures[2]->address->city, $result[2][0]->city);
687
688
        $this->assertEquals($this->fixtures[0]->address->country, $result[0][0]->country);
689
        $this->assertEquals($this->fixtures[1]->address->country, $result[1][0]->country);
690
        $this->assertEquals($this->fixtures[2]->address->country, $result[2][0]->country);
691
    }
692
693
    public function testShouldSupportMultipleNewOperatorsAndSingleScalar()
694
    {