@@ -22,10 +22,7 @@ public void Init()
2222 DbName = "name" ,
2323 NameHumanCase = "some_sp" ,
2424 IsStoredProcedure = true ,
25- ReturnModels = new List < List < DataColumn > >
26- {
27- new List < DataColumn > { new DataColumn { AllowDBNull = true } }
28- } ,
25+ ReturnModels = new List < List < DataColumn > > ( ) ,
2926 Parameters = new List < StoredProcedureParameter >
3027 {
3128 new StoredProcedureParameter
@@ -86,12 +83,20 @@ public void ColumnNameForXmlOrJsonReturnType(string exampleServerGenerated, stri
8683 Assert . AreEqual ( $ "public string { expected } {{ get; set; }}", result ) ;
8784 }
8885
89- [ TestCase ( false , false , "DateTime? A, out DateTime? B, DateTime? C = null, DateTime? D = null" ) ]
90- [ TestCase ( false , true , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D" ) ]
91- [ TestCase ( true , false , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D, out int procResult" ) ]
92- [ TestCase ( true , true , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D, out int procResult" ) ]
93- public void WriteStoredProcFunctionParams_HasTailNullable ( bool includeProcResult , bool forInterface , string expected )
86+ [ TestCase ( false , false , false , "DateTime? A, out DateTime? B, DateTime? C = null, DateTime? D = null" ) ]
87+ [ TestCase ( false , true , false , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D" ) ]
88+ [ TestCase ( true , false , false , "DateTime? A, out DateTime? B, DateTime? C = null, DateTime? D = null" ) ]
89+ [ TestCase ( true , true , false , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D" ) ]
90+ [ TestCase ( false , false , true , "DateTime? A, out DateTime? B, DateTime? C = null, DateTime? D = null" ) ]
91+ [ TestCase ( false , true , true , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D" ) ]
92+ [ TestCase ( true , false , true , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D, out int procResult" ) ]
93+ [ TestCase ( true , true , true , "DateTime? A, out DateTime? B, DateTime? C, DateTime? D, out int procResult" ) ]
94+ public void WriteStoredProcFunctionParams_HasTailNullable ( bool includeProcResult , bool forInterface , bool hasReturnModel , string expected )
9495 {
96+ // Arrange
97+ if ( hasReturnModel )
98+ _sut . ReturnModels = new List < List < DataColumn > > { new List < DataColumn > { new DataColumn ( "test" ) } } ;
99+
95100 // Act
96101 var result = _sut . WriteStoredProcFunctionParams ( includeProcResult , forInterface ) ;
97102
@@ -100,14 +105,21 @@ public void WriteStoredProcFunctionParams_HasTailNullable(bool includeProcResult
100105 Assert . AreEqual ( expected , result ) ;
101106 }
102107
103- [ TestCase ( false , false , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
104- [ TestCase ( false , true , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
105- [ TestCase ( true , false , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D, out int procResult" ) ]
106- [ TestCase ( true , true , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D, out int procResult" ) ]
107- public void WriteStoredProcFunctionParams_NoTailNullable ( bool includeProcResult , bool forInterface , string expected )
108+ [ TestCase ( false , false , false , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
109+ [ TestCase ( false , true , false , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
110+ [ TestCase ( true , false , false , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
111+ [ TestCase ( true , true , false , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
112+ [ TestCase ( false , false , true , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
113+ [ TestCase ( false , true , true , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D" ) ]
114+ [ TestCase ( true , false , true , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D, out int procResult" ) ]
115+ [ TestCase ( true , true , true , "DateTime? A, out DateTime? B, DateTime? C, out DateTime? D, out int procResult" ) ]
116+ public void WriteStoredProcFunctionParams_NoTailNullable ( bool includeProcResult , bool forInterface , bool hasReturnModel , string expected )
108117 {
109118 // Arrange - Set last to be an 'out' parameter.
110119 _sut . Parameters . Single ( x => x . NameHumanCase == "D" ) . Mode = StoredProcedureParameterMode . InOut ;
120+
121+ if ( hasReturnModel )
122+ _sut . ReturnModels = new List < List < DataColumn > > { new List < DataColumn > { new DataColumn ( "test" ) } } ;
111123
112124 // Act
113125 var result = _sut . WriteStoredProcFunctionParams ( includeProcResult , forInterface ) ;
@@ -234,14 +246,51 @@ public void ThisHasMixedOutParameters()
234246 } ;
235247
236248 // Act
237- var resultString = _sut . WriteStoredProcFunctionParams ( false , false ) ;
238- var resultTail = _sut . WhichTailEndParametersCanBeNullable ( GetParams ( ) , false , false ) ;
249+ var resultStringFf = _sut . WriteStoredProcFunctionParams ( false , false ) ;
250+ var resultStringTf = _sut . WriteStoredProcFunctionParams ( true , false ) ; // End up being false due to having no ReturnModels
251+
252+ // Assert
253+ Assert . IsNotNull ( resultStringFf ) ;
254+ Assert . IsNotNull ( resultStringTf ) ;
255+ Assert . AreEqual ( resultStringFf , resultStringTf ) ;
256+ Assert . AreEqual ( "DateTime? foo, out int? firstOutParam, DateTime? bar, out int? secondOutParam, DateTime? baz = null" , resultStringTf ) ;
257+ }
258+
259+ [ Test ]
260+ public void ParameterWithNotNullableType ( )
261+ {
262+ // Arrange
263+ _sut . Parameters = new List < StoredProcedureParameter >
264+ {
265+ new StoredProcedureParameter
266+ {
267+ Mode = StoredProcedureParameterMode . In ,
268+ NameHumanCase = "a" ,
269+ PropertyType = "int" ,
270+ Ordinal = 1
271+ } ,
272+ new StoredProcedureParameter
273+ {
274+ Mode = StoredProcedureParameterMode . In ,
275+ NameHumanCase = "type" ,
276+ PropertyType = "DataTable" ,
277+ Ordinal = 3
278+ } ,
279+ new StoredProcedureParameter
280+ {
281+ Mode = StoredProcedureParameterMode . In ,
282+ NameHumanCase = "b" ,
283+ PropertyType = "int" ,
284+ Ordinal = 5
285+ }
286+ } ;
287+
288+ // Act
289+ var result = _sut . WriteStoredProcFunctionParams ( false , false ) ;
239290
240291 // Assert
241- Assert . IsNotNull ( resultString ) ;
242- Assert . IsNotNull ( resultTail ) ;
243- Assert . AreEqual ( 5 , resultTail ) ;
244- Assert . AreEqual ( "DateTime? foo, out int? firstOutParam, DateTime? bar, out int? secondOutParam, DateTime? baz = null" , resultString ) ;
292+ Assert . IsNotNull ( result ) ;
293+ Assert . AreEqual ( "int? a, DataTable type, int? b = null" , result ) ;
245294 }
246295
247296 private List < StoredProcedureParameter > GetParams ( )
0 commit comments