@@ -87,7 +87,7 @@ public void UsingSystemReflectionAssembly_ThrowsException(string selector)
8787 [ InlineData ( "System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\" jwt\" ]" ) ]
8888 [ InlineData ( "c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\" jwt\" ]" ) ]
8989 [ InlineData ( "c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\" jwt\" ]" ) ]
90- public void UsingStaticClass_ThrowsException ( string selector )
90+ public void UsingStaticClassAsType_ThrowsException ( string selector )
9191 {
9292 // Arrange
9393 var queryable = new [ ]
@@ -102,16 +102,36 @@ public void UsingStaticClass_ThrowsException(string selector)
102102 action . Should ( ) . Throw < ParseException > ( ) . WithMessage ( "Type 'System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings' not found" ) ;
103103 }
104104
105+ [ Theory ]
106+ [ InlineData ( "new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsProp[\" jwt\" ]" ) ]
107+ [ InlineData ( "new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsField[\" jwt\" ]" ) ]
108+ [ InlineData ( "c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsProp[\" jwt\" ]" ) ]
109+ [ InlineData ( "c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3().SettingsField[\" jwt\" ]" ) ]
110+ public void UsingClassAsType_ThrowsException ( string selector )
111+ {
112+ // Arrange
113+ var queryable = new [ ]
114+ {
115+ new Message ( "Alice" , "Bob" )
116+ } . AsQueryable ( ) ;
117+
118+ // Act
119+ Action action = ( ) => queryable . Select ( selector ) ;
120+
121+ // Assert
122+ action . Should ( ) . Throw < ParseException > ( ) . WithMessage ( "Type 'System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3' not found" ) ;
123+ }
124+
105125 [ Theory ]
106126 [ InlineData ( "System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\" jwt\" ]" ) ]
107127 [ InlineData ( "System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\" jwt\" ]" ) ]
108128 [ InlineData ( "c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsProp[\" jwt\" ]" ) ]
109129 [ InlineData ( "c => System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings.SettingsField[\" jwt\" ]" ) ]
110- public void UsingStaticClass_WhenAddedDefaultDynamicLinqCustomTypeProvider_ShouldBeOk ( string selector )
130+ public void UsingStaticClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_ShouldBeOk ( string selector )
111131 {
112132 // Arrange
113133 var config = new ParsingConfig ( ) ;
114- config . UseDefaultDynamicLinqCustomTypeProvider ( [ typeof ( Helpers . Models . AppSettings ) ] ) ;
134+ config . UseDefaultDynamicLinqCustomTypeProvider ( [ typeof ( Helpers . Models . AppSettings ) , typeof ( Helpers . Models . AppSettings3 ) ] ) ;
115135
116136 var queryable = new [ ]
117137 {
@@ -125,6 +145,29 @@ public void UsingStaticClass_WhenAddedDefaultDynamicLinqCustomTypeProvider_Shoul
125145 action . Should ( ) . NotThrow ( ) ;
126146 }
127147
148+ [ Theory ( Skip = "Bug: Accessing static members on instance class is not supported" ) ]
149+ [ InlineData ( "new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()" , "SettingsProp[\" jwt\" ]" ) ]
150+ [ InlineData ( "new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()" , "SettingsField[\" jwt\" ]" ) ]
151+ [ InlineData ( "c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()" , "SettingsProp[\" jwt\" ]" ) ]
152+ [ InlineData ( "c => new System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings3()" , "SettingsField[\" jwt\" ]" ) ]
153+ public void UsingClassAsType_WhenAddedToDefaultDynamicLinqCustomTypeProvider_ShouldBeOk ( string selector1 , string selector2 )
154+ {
155+ // Arrange
156+ var config = new ParsingConfig ( ) ;
157+ config . UseDefaultDynamicLinqCustomTypeProvider ( [ typeof ( Helpers . Models . AppSettings ) , typeof ( Helpers . Models . AppSettings3 ) ] ) ;
158+
159+ var queryable = new [ ]
160+ {
161+ new Message ( "Alice" , "Bob" )
162+ } . AsQueryable ( ) ;
163+
164+ // Act
165+ Action action = ( ) => queryable . Select ( config , selector1 ) . Select ( config , selector2 ) ;
166+
167+ // Assert
168+ action . Should ( ) . NotThrow ( ) ;
169+ }
170+
128171 [ Theory ]
129172 [ InlineData ( "System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.SettingsProp[\" jwt\" ]" ) ]
130173 [ InlineData ( "System.Linq.Dynamic.Core.Tests.Helpers.Models.AppSettings2.SettingsField[\" jwt\" ]" ) ]
0 commit comments