@@ 483-533 (lines=51) @@ | ||
480 | ); |
|
481 | } |
|
482 | ||
483 | public function testShouldSupportMultipleNewOperators() |
|
484 | { |
|
485 | $dql = " |
|
486 | SELECT |
|
487 | new CmsUserDTO( |
|
488 | u.name, |
|
489 | e.email |
|
490 | ), |
|
491 | new CmsAddressDTO( |
|
492 | a.country, |
|
493 | a.city |
|
494 | ) |
|
495 | FROM |
|
496 | Doctrine\Tests\Models\CMS\CmsUser u |
|
497 | JOIN |
|
498 | u.email e |
|
499 | JOIN |
|
500 | u.address a |
|
501 | ORDER BY |
|
502 | u.name"; |
|
503 | ||
504 | $query = $this->em->createQuery($dql); |
|
505 | $result = $query->getResult(); |
|
506 | ||
507 | self::assertCount(3, $result); |
|
508 | ||
509 | self::assertInstanceOf(CmsUserDTO::class, $result[0][0]); |
|
510 | self::assertInstanceOf(CmsUserDTO::class, $result[1][0]); |
|
511 | self::assertInstanceOf(CmsUserDTO::class, $result[2][0]); |
|
512 | ||
513 | self::assertInstanceOf(CmsAddressDTO::class, $result[0][1]); |
|
514 | self::assertInstanceOf(CmsAddressDTO::class, $result[1][1]); |
|
515 | self::assertInstanceOf(CmsAddressDTO::class, $result[2][1]); |
|
516 | ||
517 | self::assertEquals($this->fixtures[0]->name, $result[0][0]->name); |
|
518 | self::assertEquals($this->fixtures[1]->name, $result[1][0]->name); |
|
519 | self::assertEquals($this->fixtures[2]->name, $result[2][0]->name); |
|
520 | ||
521 | self::assertEquals($this->fixtures[0]->email->email, $result[0][0]->email); |
|
522 | self::assertEquals($this->fixtures[1]->email->email, $result[1][0]->email); |
|
523 | self::assertEquals($this->fixtures[2]->email->email, $result[2][0]->email); |
|
524 | ||
525 | ||
526 | self::assertEquals($this->fixtures[0]->address->city, $result[0][1]->city); |
|
527 | self::assertEquals($this->fixtures[1]->address->city, $result[1][1]->city); |
|
528 | self::assertEquals($this->fixtures[2]->address->city, $result[2][1]->city); |
|
529 | ||
530 | self::assertEquals($this->fixtures[0]->address->country, $result[0][1]->country); |
|
531 | self::assertEquals($this->fixtures[1]->address->country, $result[1][1]->country); |
|
532 | self::assertEquals($this->fixtures[2]->address->country, $result[2][1]->country); |
|
533 | } |
|
534 | ||
535 | public function testShouldSupportMultipleNewOperatorsWithAliases() |
|
536 | { |
|
@@ 535-585 (lines=51) @@ | ||
532 | self::assertEquals($this->fixtures[2]->address->country, $result[2][1]->country); |
|
533 | } |
|
534 | ||
535 | public function testShouldSupportMultipleNewOperatorsWithAliases() |
|
536 | { |
|
537 | $dql = " |
|
538 | SELECT |
|
539 | new CmsUserDTO( |
|
540 | u.name, |
|
541 | e.email |
|
542 | ) as cmsUser, |
|
543 | new CmsAddressDTO( |
|
544 | a.country, |
|
545 | a.city |
|
546 | ) as cmsAddress |
|
547 | FROM |
|
548 | Doctrine\Tests\Models\CMS\CmsUser u |
|
549 | JOIN |
|
550 | u.email e |
|
551 | JOIN |
|
552 | u.address a |
|
553 | ORDER BY |
|
554 | u.name"; |
|
555 | ||
556 | $query = $this->em->createQuery($dql); |
|
557 | $result = $query->getResult(); |
|
558 | ||
559 | self::assertCount(3, $result); |
|
560 | ||
561 | self::assertInstanceOf(CmsUserDTO::class, $result[0]['cmsUser']); |
|
562 | self::assertInstanceOf(CmsUserDTO::class, $result[1]['cmsUser']); |
|
563 | self::assertInstanceOf(CmsUserDTO::class, $result[2]['cmsUser']); |
|
564 | ||
565 | self::assertInstanceOf(CmsAddressDTO::class, $result[0]['cmsAddress']); |
|
566 | self::assertInstanceOf(CmsAddressDTO::class, $result[1]['cmsAddress']); |
|
567 | self::assertInstanceOf(CmsAddressDTO::class, $result[2]['cmsAddress']); |
|
568 | ||
569 | self::assertEquals($this->fixtures[0]->name, $result[0]['cmsUser']->name); |
|
570 | self::assertEquals($this->fixtures[1]->name, $result[1]['cmsUser']->name); |
|
571 | self::assertEquals($this->fixtures[2]->name, $result[2]['cmsUser']->name); |
|
572 | ||
573 | self::assertEquals($this->fixtures[0]->email->email, $result[0]['cmsUser']->email); |
|
574 | self::assertEquals($this->fixtures[1]->email->email, $result[1]['cmsUser']->email); |
|
575 | self::assertEquals($this->fixtures[2]->email->email, $result[2]['cmsUser']->email); |
|
576 | ||
577 | ||
578 | self::assertEquals($this->fixtures[0]->address->city, $result[0]['cmsAddress']->city); |
|
579 | self::assertEquals($this->fixtures[1]->address->city, $result[1]['cmsAddress']->city); |
|
580 | self::assertEquals($this->fixtures[2]->address->city, $result[2]['cmsAddress']->city); |
|
581 | ||
582 | self::assertEquals($this->fixtures[0]->address->country, $result[0]['cmsAddress']->country); |
|
583 | self::assertEquals($this->fixtures[1]->address->country, $result[1]['cmsAddress']->country); |
|
584 | self::assertEquals($this->fixtures[2]->address->country, $result[2]['cmsAddress']->country); |
|
585 | } |
|
586 | ||
587 | public function testShouldSupportMultipleNewOperatorsWithAndWithoutAliases() |
|
588 | { |
|
@@ 587-637 (lines=51) @@ | ||
584 | self::assertEquals($this->fixtures[2]->address->country, $result[2]['cmsAddress']->country); |
|
585 | } |
|
586 | ||
587 | public function testShouldSupportMultipleNewOperatorsWithAndWithoutAliases() |
|
588 | { |
|
589 | $dql = " |
|
590 | SELECT |
|
591 | new CmsUserDTO( |
|
592 | u.name, |
|
593 | e.email |
|
594 | ) as cmsUser, |
|
595 | new CmsAddressDTO( |
|
596 | a.country, |
|
597 | a.city |
|
598 | ) |
|
599 | FROM |
|
600 | Doctrine\Tests\Models\CMS\CmsUser u |
|
601 | JOIN |
|
602 | u.email e |
|
603 | JOIN |
|
604 | u.address a |
|
605 | ORDER BY |
|
606 | u.name"; |
|
607 | ||
608 | $query = $this->em->createQuery($dql); |
|
609 | $result = $query->getResult(); |
|
610 | ||
611 | self::assertCount(3, $result); |
|
612 | ||
613 | self::assertInstanceOf(CmsUserDTO::class, $result[0]['cmsUser']); |
|
614 | self::assertInstanceOf(CmsUserDTO::class, $result[1]['cmsUser']); |
|
615 | self::assertInstanceOf(CmsUserDTO::class, $result[2]['cmsUser']); |
|
616 | ||
617 | self::assertInstanceOf(CmsAddressDTO::class, $result[0][0]); |
|
618 | self::assertInstanceOf(CmsAddressDTO::class, $result[1][0]); |
|
619 | self::assertInstanceOf(CmsAddressDTO::class, $result[2][0]); |
|
620 | ||
621 | self::assertEquals($this->fixtures[0]->name, $result[0]['cmsUser']->name); |
|
622 | self::assertEquals($this->fixtures[1]->name, $result[1]['cmsUser']->name); |
|
623 | self::assertEquals($this->fixtures[2]->name, $result[2]['cmsUser']->name); |
|
624 | ||
625 | self::assertEquals($this->fixtures[0]->email->email, $result[0]['cmsUser']->email); |
|
626 | self::assertEquals($this->fixtures[1]->email->email, $result[1]['cmsUser']->email); |
|
627 | self::assertEquals($this->fixtures[2]->email->email, $result[2]['cmsUser']->email); |
|
628 | ||
629 | ||
630 | self::assertEquals($this->fixtures[0]->address->city, $result[0][0]->city); |
|
631 | self::assertEquals($this->fixtures[1]->address->city, $result[1][0]->city); |
|
632 | self::assertEquals($this->fixtures[2]->address->city, $result[2][0]->city); |
|
633 | ||
634 | self::assertEquals($this->fixtures[0]->address->country, $result[0][0]->country); |
|
635 | self::assertEquals($this->fixtures[1]->address->country, $result[1][0]->country); |
|
636 | self::assertEquals($this->fixtures[2]->address->country, $result[2][0]->country); |
|
637 | } |
|
638 | ||
639 | public function testShouldSupportMultipleNewOperatorsAndSingleScalar() |
|
640 | { |