@@ 810-870 (lines=61) @@ | ||
807 | self::assertEquals($this->fixtures[2]->status,$result[2]['status']); |
|
808 | } |
|
809 | ||
810 | public function testShouldSupportMultipleNewOperatorsAndMultipleScalars() |
|
811 | { |
|
812 | $dql = " |
|
813 | SELECT |
|
814 | new CmsUserDTO( |
|
815 | u.name, |
|
816 | e.email |
|
817 | ), |
|
818 | new CmsAddressDTO( |
|
819 | a.country, |
|
820 | a.city |
|
821 | ), |
|
822 | u.status, |
|
823 | u.username |
|
824 | FROM |
|
825 | Doctrine\Tests\Models\CMS\CmsUser u |
|
826 | JOIN |
|
827 | u.email e |
|
828 | JOIN |
|
829 | u.address a |
|
830 | ORDER BY |
|
831 | u.name"; |
|
832 | ||
833 | $query = $this->em->createQuery($dql); |
|
834 | $result = $query->getResult(); |
|
835 | ||
836 | self::assertCount(3, $result); |
|
837 | ||
838 | self::assertInstanceOf(CmsUserDTO::class, $result[0][0]); |
|
839 | self::assertInstanceOf(CmsUserDTO::class, $result[1][0]); |
|
840 | self::assertInstanceOf(CmsUserDTO::class, $result[2][0]); |
|
841 | ||
842 | self::assertInstanceOf(CmsAddressDTO::class, $result[0][1]); |
|
843 | self::assertInstanceOf(CmsAddressDTO::class, $result[1][1]); |
|
844 | self::assertInstanceOf(CmsAddressDTO::class, $result[2][1]); |
|
845 | ||
846 | self::assertEquals($this->fixtures[0]->name, $result[0][0]->name); |
|
847 | self::assertEquals($this->fixtures[1]->name, $result[1][0]->name); |
|
848 | self::assertEquals($this->fixtures[2]->name, $result[2][0]->name); |
|
849 | ||
850 | self::assertEquals($this->fixtures[0]->email->email, $result[0][0]->email); |
|
851 | self::assertEquals($this->fixtures[1]->email->email, $result[1][0]->email); |
|
852 | self::assertEquals($this->fixtures[2]->email->email, $result[2][0]->email); |
|
853 | ||
854 | ||
855 | self::assertEquals($this->fixtures[0]->address->city, $result[0][1]->city); |
|
856 | self::assertEquals($this->fixtures[1]->address->city, $result[1][1]->city); |
|
857 | self::assertEquals($this->fixtures[2]->address->city, $result[2][1]->city); |
|
858 | ||
859 | self::assertEquals($this->fixtures[0]->address->country, $result[0][1]->country); |
|
860 | self::assertEquals($this->fixtures[1]->address->country, $result[1][1]->country); |
|
861 | self::assertEquals($this->fixtures[2]->address->country, $result[2][1]->country); |
|
862 | ||
863 | self::assertEquals($this->fixtures[0]->status,$result[0]['status']); |
|
864 | self::assertEquals($this->fixtures[1]->status,$result[1]['status']); |
|
865 | self::assertEquals($this->fixtures[2]->status,$result[2]['status']); |
|
866 | ||
867 | self::assertEquals($this->fixtures[0]->username,$result[0]['username']); |
|
868 | self::assertEquals($this->fixtures[1]->username,$result[1]['username']); |
|
869 | self::assertEquals($this->fixtures[2]->username,$result[2]['username']); |
|
870 | } |
|
871 | ||
872 | public function testShouldSupportMultipleNewOperatorsAndMultipleScalarsWithAliases() |
|
873 | { |
|
@@ 872-932 (lines=61) @@ | ||
869 | self::assertEquals($this->fixtures[2]->username,$result[2]['username']); |
|
870 | } |
|
871 | ||
872 | public function testShouldSupportMultipleNewOperatorsAndMultipleScalarsWithAliases() |
|
873 | { |
|
874 | $dql = " |
|
875 | SELECT |
|
876 | new CmsUserDTO( |
|
877 | u.name, |
|
878 | e.email |
|
879 | ) as cmsUser, |
|
880 | new CmsAddressDTO( |
|
881 | a.country, |
|
882 | a.city |
|
883 | ) as cmsAddress, |
|
884 | u.status as cmsUserStatus, |
|
885 | u.username as cmsUserUsername |
|
886 | FROM |
|
887 | Doctrine\Tests\Models\CMS\CmsUser u |
|
888 | JOIN |
|
889 | u.email e |
|
890 | JOIN |
|
891 | u.address a |
|
892 | ORDER BY |
|
893 | u.name"; |
|
894 | ||
895 | $query = $this->em->createQuery($dql); |
|
896 | $result = $query->getResult(); |
|
897 | ||
898 | self::assertCount(3, $result); |
|
899 | ||
900 | self::assertInstanceOf(CmsUserDTO::class, $result[0]['cmsUser']); |
|
901 | self::assertInstanceOf(CmsUserDTO::class, $result[1]['cmsUser']); |
|
902 | self::assertInstanceOf(CmsUserDTO::class, $result[2]['cmsUser']); |
|
903 | ||
904 | self::assertInstanceOf(CmsAddressDTO::class, $result[0]['cmsAddress']); |
|
905 | self::assertInstanceOf(CmsAddressDTO::class, $result[1]['cmsAddress']); |
|
906 | self::assertInstanceOf(CmsAddressDTO::class, $result[2]['cmsAddress']); |
|
907 | ||
908 | self::assertEquals($this->fixtures[0]->name, $result[0]['cmsUser']->name); |
|
909 | self::assertEquals($this->fixtures[1]->name, $result[1]['cmsUser']->name); |
|
910 | self::assertEquals($this->fixtures[2]->name, $result[2]['cmsUser']->name); |
|
911 | ||
912 | self::assertEquals($this->fixtures[0]->email->email, $result[0]['cmsUser']->email); |
|
913 | self::assertEquals($this->fixtures[1]->email->email, $result[1]['cmsUser']->email); |
|
914 | self::assertEquals($this->fixtures[2]->email->email, $result[2]['cmsUser']->email); |
|
915 | ||
916 | ||
917 | self::assertEquals($this->fixtures[0]->address->city, $result[0]['cmsAddress']->city); |
|
918 | self::assertEquals($this->fixtures[1]->address->city, $result[1]['cmsAddress']->city); |
|
919 | self::assertEquals($this->fixtures[2]->address->city, $result[2]['cmsAddress']->city); |
|
920 | ||
921 | self::assertEquals($this->fixtures[0]->address->country, $result[0]['cmsAddress']->country); |
|
922 | self::assertEquals($this->fixtures[1]->address->country, $result[1]['cmsAddress']->country); |
|
923 | self::assertEquals($this->fixtures[2]->address->country, $result[2]['cmsAddress']->country); |
|
924 | ||
925 | self::assertEquals($this->fixtures[0]->status,$result[0]['cmsUserStatus']); |
|
926 | self::assertEquals($this->fixtures[1]->status,$result[1]['cmsUserStatus']); |
|
927 | self::assertEquals($this->fixtures[2]->status,$result[2]['cmsUserStatus']); |
|
928 | ||
929 | self::assertEquals($this->fixtures[0]->username,$result[0]['cmsUserUsername']); |
|
930 | self::assertEquals($this->fixtures[1]->username,$result[1]['cmsUserUsername']); |
|
931 | self::assertEquals($this->fixtures[2]->username,$result[2]['cmsUserUsername']); |
|
932 | } |
|
933 | ||
934 | public function testShouldSupportMultipleNewOperatorsAndMultipleScalarsWithAndWithoutAliases() |
|
935 | { |
|
@@ 934-994 (lines=61) @@ | ||
931 | self::assertEquals($this->fixtures[2]->username,$result[2]['cmsUserUsername']); |
|
932 | } |
|
933 | ||
934 | public function testShouldSupportMultipleNewOperatorsAndMultipleScalarsWithAndWithoutAliases() |
|
935 | { |
|
936 | $dql = " |
|
937 | SELECT |
|
938 | new CmsUserDTO( |
|
939 | u.name, |
|
940 | e.email |
|
941 | ) as cmsUser, |
|
942 | new CmsAddressDTO( |
|
943 | a.country, |
|
944 | a.city |
|
945 | ), |
|
946 | u.status, |
|
947 | u.username as cmsUserUsername |
|
948 | FROM |
|
949 | Doctrine\Tests\Models\CMS\CmsUser u |
|
950 | JOIN |
|
951 | u.email e |
|
952 | JOIN |
|
953 | u.address a |
|
954 | ORDER BY |
|
955 | u.name"; |
|
956 | ||
957 | $query = $this->em->createQuery($dql); |
|
958 | $result = $query->getResult(); |
|
959 | ||
960 | self::assertCount(3, $result); |
|
961 | ||
962 | self::assertInstanceOf(CmsUserDTO::class, $result[0]['cmsUser']); |
|
963 | self::assertInstanceOf(CmsUserDTO::class, $result[1]['cmsUser']); |
|
964 | self::assertInstanceOf(CmsUserDTO::class, $result[2]['cmsUser']); |
|
965 | ||
966 | self::assertInstanceOf(CmsAddressDTO::class, $result[0][0]); |
|
967 | self::assertInstanceOf(CmsAddressDTO::class, $result[1][0]); |
|
968 | self::assertInstanceOf(CmsAddressDTO::class, $result[2][0]); |
|
969 | ||
970 | self::assertEquals($this->fixtures[0]->name, $result[0]['cmsUser']->name); |
|
971 | self::assertEquals($this->fixtures[1]->name, $result[1]['cmsUser']->name); |
|
972 | self::assertEquals($this->fixtures[2]->name, $result[2]['cmsUser']->name); |
|
973 | ||
974 | self::assertEquals($this->fixtures[0]->email->email, $result[0]['cmsUser']->email); |
|
975 | self::assertEquals($this->fixtures[1]->email->email, $result[1]['cmsUser']->email); |
|
976 | self::assertEquals($this->fixtures[2]->email->email, $result[2]['cmsUser']->email); |
|
977 | ||
978 | ||
979 | self::assertEquals($this->fixtures[0]->address->city, $result[0][0]->city); |
|
980 | self::assertEquals($this->fixtures[1]->address->city, $result[1][0]->city); |
|
981 | self::assertEquals($this->fixtures[2]->address->city, $result[2][0]->city); |
|
982 | ||
983 | self::assertEquals($this->fixtures[0]->address->country, $result[0][0]->country); |
|
984 | self::assertEquals($this->fixtures[1]->address->country, $result[1][0]->country); |
|
985 | self::assertEquals($this->fixtures[2]->address->country, $result[2][0]->country); |
|
986 | ||
987 | self::assertEquals($this->fixtures[0]->status,$result[0]['status']); |
|
988 | self::assertEquals($this->fixtures[1]->status,$result[1]['status']); |
|
989 | self::assertEquals($this->fixtures[2]->status,$result[2]['status']); |
|
990 | ||
991 | self::assertEquals($this->fixtures[0]->username,$result[0]['cmsUserUsername']); |
|
992 | self::assertEquals($this->fixtures[1]->username,$result[1]['cmsUserUsername']); |
|
993 | self::assertEquals($this->fixtures[2]->username,$result[2]['cmsUserUsername']); |
|
994 | } |
|
995 | ||
996 | /** |
|
997 | * @expectedException Doctrine\ORM\Query\QueryException |