@@ -692,6 +692,110 @@ public void CountWithNullForeignKey()
692692 Assert . AreEqual ( query . Count ( ) , DataInitializer . ProductSampleCount ) ;
693693 }
694694 }
695+
696+ [ TestMethod ]
697+ public void SelectAllPropertiesWithoutRelations ( )
698+ {
699+ using ( AutoQueryableContext context = new AutoQueryableContext ( ) )
700+ {
701+ DataInitializer . InitializeSeed ( context ) ;
702+ var query = context . Product . AutoQueryable ( "select=_" ) as IQueryable < object > ;
703+ PropertyInfo [ ] properties = query . First ( ) . GetType ( ) . GetProperties ( ) ;
704+
705+ Assert . AreEqual ( 17 , properties . Count ( ) ) ;
706+
707+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductId" ) ) ;
708+ Assert . IsTrue ( properties . Any ( p => p . Name == "Name" ) ) ;
709+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductNumber" ) ) ;
710+ Assert . IsTrue ( properties . Any ( p => p . Name == "Color" ) ) ;
711+ Assert . IsTrue ( properties . Any ( p => p . Name == "StandardCost" ) ) ;
712+ Assert . IsTrue ( properties . Any ( p => p . Name == "ListPrice" ) ) ;
713+ Assert . IsTrue ( properties . Any ( p => p . Name == "Size" ) ) ;
714+ Assert . IsTrue ( properties . Any ( p => p . Name == "Weight" ) ) ;
715+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductCategoryId" ) ) ;
716+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductModelId" ) ) ;
717+ Assert . IsTrue ( properties . Any ( p => p . Name == "SellStartDate" ) ) ;
718+ Assert . IsTrue ( properties . Any ( p => p . Name == "SellEndDate" ) ) ;
719+ Assert . IsTrue ( properties . Any ( p => p . Name == "DiscontinuedDate" ) ) ;
720+ Assert . IsTrue ( properties . Any ( p => p . Name == "ThumbNailPhoto" ) ) ;
721+ Assert . IsTrue ( properties . Any ( p => p . Name == "ThumbnailPhotoFileName" ) ) ;
722+ Assert . IsTrue ( properties . Any ( p => p . Name == "Rowguid" ) ) ;
723+ Assert . IsTrue ( properties . Any ( p => p . Name == "ModifiedDate" ) ) ;
724+
725+ Assert . AreEqual ( query . Count ( ) , DataInitializer . ProductSampleCount ) ;
726+ }
727+ }
728+
729+ [ TestMethod ]
730+ public void SelectAllPropertiesWithOneRelation ( )
731+ {
732+ using ( AutoQueryableContext context = new AutoQueryableContext ( ) )
733+ {
734+ DataInitializer . InitializeSeed ( context ) ;
735+ var query = context . Product . AutoQueryable ( "select=_,ProductModel" ) as IQueryable < object > ;
736+ PropertyInfo [ ] properties = query . First ( ) . GetType ( ) . GetProperties ( ) ;
737+
738+ Assert . AreEqual ( 18 , properties . Count ( ) ) ;
739+
740+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductId" ) ) ;
741+ Assert . IsTrue ( properties . Any ( p => p . Name == "Name" ) ) ;
742+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductNumber" ) ) ;
743+ Assert . IsTrue ( properties . Any ( p => p . Name == "Color" ) ) ;
744+ Assert . IsTrue ( properties . Any ( p => p . Name == "StandardCost" ) ) ;
745+ Assert . IsTrue ( properties . Any ( p => p . Name == "ListPrice" ) ) ;
746+ Assert . IsTrue ( properties . Any ( p => p . Name == "Size" ) ) ;
747+ Assert . IsTrue ( properties . Any ( p => p . Name == "Weight" ) ) ;
748+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductCategoryId" ) ) ;
749+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductModelId" ) ) ;
750+ Assert . IsTrue ( properties . Any ( p => p . Name == "SellStartDate" ) ) ;
751+ Assert . IsTrue ( properties . Any ( p => p . Name == "SellEndDate" ) ) ;
752+ Assert . IsTrue ( properties . Any ( p => p . Name == "DiscontinuedDate" ) ) ;
753+ Assert . IsTrue ( properties . Any ( p => p . Name == "ThumbNailPhoto" ) ) ;
754+ Assert . IsTrue ( properties . Any ( p => p . Name == "ThumbnailPhotoFileName" ) ) ;
755+ Assert . IsTrue ( properties . Any ( p => p . Name == "Rowguid" ) ) ;
756+ Assert . IsTrue ( properties . Any ( p => p . Name == "ModifiedDate" ) ) ;
757+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductModel" ) ) ;
758+
759+ Assert . AreEqual ( query . Count ( ) , DataInitializer . ProductSampleCount ) ;
760+ }
761+ }
762+
763+ [ TestMethod ]
764+ public void SelectAllPropertiesFromLevelZero ( )
765+ {
766+ using ( AutoQueryableContext context = new AutoQueryableContext ( ) )
767+ {
768+ DataInitializer . InitializeSeed ( context ) ;
769+ var query = context . Product . AutoQueryable ( "select=*" ) as IQueryable < object > ;
770+ PropertyInfo [ ] properties = query . First ( ) . GetType ( ) . GetProperties ( ) ;
771+
772+ Assert . AreEqual ( 21 , properties . Count ( ) ) ;
773+
774+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductId" ) ) ;
775+ Assert . IsTrue ( properties . Any ( p => p . Name == "Name" ) ) ;
776+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductNumber" ) ) ;
777+ Assert . IsTrue ( properties . Any ( p => p . Name == "Color" ) ) ;
778+ Assert . IsTrue ( properties . Any ( p => p . Name == "StandardCost" ) ) ;
779+ Assert . IsTrue ( properties . Any ( p => p . Name == "ListPrice" ) ) ;
780+ Assert . IsTrue ( properties . Any ( p => p . Name == "Size" ) ) ;
781+ Assert . IsTrue ( properties . Any ( p => p . Name == "Weight" ) ) ;
782+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductCategoryId" ) ) ;
783+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductModelId" ) ) ;
784+ Assert . IsTrue ( properties . Any ( p => p . Name == "SellStartDate" ) ) ;
785+ Assert . IsTrue ( properties . Any ( p => p . Name == "SellEndDate" ) ) ;
786+ Assert . IsTrue ( properties . Any ( p => p . Name == "DiscontinuedDate" ) ) ;
787+ Assert . IsTrue ( properties . Any ( p => p . Name == "ThumbNailPhoto" ) ) ;
788+ Assert . IsTrue ( properties . Any ( p => p . Name == "ThumbnailPhotoFileName" ) ) ;
789+ Assert . IsTrue ( properties . Any ( p => p . Name == "Rowguid" ) ) ;
790+ Assert . IsTrue ( properties . Any ( p => p . Name == "ModifiedDate" ) ) ;
791+ Assert . IsTrue ( properties . Any ( p => p . Name == "SalesOrderDetail" ) ) ;
792+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductExtension" ) ) ;
793+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductCategory" ) ) ;
794+ Assert . IsTrue ( properties . Any ( p => p . Name == "ProductModel" ) ) ;
795+
796+ Assert . AreEqual ( query . Count ( ) , DataInitializer . ProductSampleCount ) ;
797+ }
798+ }
695799 }
696800
697801}
0 commit comments