@@ -77,6 +77,22 @@ public void AllEventsInsideMvcJQDTAttributeShouldBeCalledInCorrectOrder()
77
77
Assert . IsTrue ( expectedEventsCalls . SequenceEqual ( calledEvents ) ) ;
78
78
}
79
79
80
+ [ Test ]
81
+ public void ExpectToThrowOnInappropriateDataTypeInsideEventSubscriberFunction ( )
82
+ {
83
+ var serviceLocatorMock = this . GetServiceLocatorMock ( ) ;
84
+ var executeFunctionMock = this . GetExecuteFunctionProviderMock ( serviceLocatorMock ) ;
85
+ var contextMock = this . GetHttpContextMock ( ) ;
86
+
87
+ var testAttr = new JQDataTableThrowExceptionTestAttribute ( serviceLocatorMock . Object , executeFunctionMock . Object ) ;
88
+
89
+ testAttr . OnActionExecuted ( contextMock . Object ) ;
90
+ var jsonResult = ( JsonResult ) contextMock . Object . Result ;
91
+ var jsonResultString = jsonResult . Data . ToString ( ) ;
92
+
93
+ Assert . IsTrue ( jsonResultString . Contains ( "error = Inappropriate data collection type inside event subscriber function. The data collection type must be IQueryable<>." ) ) ;
94
+ }
95
+
80
96
private Mock < IServiceLocator > GetServiceLocatorMock ( )
81
97
{
82
98
var serviceLocatorMock = new Mock < IServiceLocator > ( ) ;
@@ -162,6 +178,19 @@ protected override IQueryable<T> GetData()
162
178
}
163
179
}
164
180
181
+ public class JQDataTableThrowExceptionTestAttribute : JQDataTableAttribute
182
+ {
183
+ internal JQDataTableThrowExceptionTestAttribute ( IServiceLocator serviceLocator , IExecuteFunctionProvider < ActionExecutedContext > executeFunctionProvider )
184
+ : base ( serviceLocator , executeFunctionProvider )
185
+ {
186
+ }
187
+
188
+ public override void OnDataProcessed ( ref object data , RequestInfoModel requestInfoModel )
189
+ {
190
+ data = new List < IntModel > ( ) ;
191
+ }
192
+ }
193
+
165
194
public class JQDataTableTestAttribute : JQDataTableAttribute
166
195
{
167
196
private readonly List < string > calledEvents ;
0 commit comments