@@ -1361,6 +1361,52 @@ public async Task CheckComplexAnonymousTypeListWsdl(SoapSerializer soapSerialize
13611361 Assert . IsNotNull ( arrayElementType ) ;
13621362 }
13631363
1364+ [ DataTestMethod ]
1365+ [ DataRow ( SoapSerializer . XmlSerializer ) ]
1366+ public async Task CheckComplexGenericTypeWithSingleArgumentWsdl ( SoapSerializer soapSerializer )
1367+ {
1368+ var wsdl = await GetWsdlFromMetaBodyWriter < ComplexGenericTypeService > ( soapSerializer ) ;
1369+ Trace . TraceInformation ( wsdl ) ;
1370+ Assert . IsNotNull ( wsdl ) ;
1371+
1372+ var root = XElement . Parse ( wsdl ) ;
1373+
1374+ var endpointInnerObjectTypeArgument = GetElements ( root , _xmlSchema + "element" )
1375+ . SingleOrDefault ( a => a . Attribute ( "name" ) ? . Value . Equals ( nameof ( ComplexTypeWithGeneric . SingleGenericArgument ) ) == true ) ;
1376+
1377+ Assert . IsNotNull ( endpointInnerObjectTypeArgument ) ;
1378+
1379+ var typeName = endpointInnerObjectTypeArgument . Attribute ( "type" ) ? . Value ;
1380+
1381+ const string genericTypeName = "InnerGenericTypeWithSingleArgument" ;
1382+ const string genericTypeArgumentName = "InnerType" ;
1383+
1384+ Assert . AreEqual ( $ "tns:{ genericTypeName } Of{ genericTypeArgumentName } ", typeName ) ;
1385+ }
1386+
1387+ [ DataTestMethod ]
1388+ [ DataRow ( SoapSerializer . XmlSerializer ) ]
1389+ public async Task CheckComplexGenericTypeWithMultipleArgumentsWsdl ( SoapSerializer soapSerializer )
1390+ {
1391+ var wsdl = await GetWsdlFromMetaBodyWriter < ComplexGenericTypeService > ( soapSerializer ) ;
1392+ Trace . TraceInformation ( wsdl ) ;
1393+ Assert . IsNotNull ( wsdl ) ;
1394+
1395+ var root = XElement . Parse ( wsdl ) ;
1396+
1397+ var endpointInnerObjectTypeArgument = GetElements ( root , _xmlSchema + "element" )
1398+ . SingleOrDefault ( a => a . Attribute ( "name" ) ? . Value . Equals ( nameof ( ComplexTypeWithGeneric . MultipleGenericArguments ) ) == true ) ;
1399+
1400+ Assert . IsNotNull ( endpointInnerObjectTypeArgument ) ;
1401+
1402+ var typeName = endpointInnerObjectTypeArgument . Attribute ( "type" ) ? . Value ;
1403+
1404+ const string genericTypeName = "InnerGenericTypeWithMultipleArguments" ;
1405+ const string genericTypeArgumentName = "InnerType" ;
1406+
1407+ Assert . AreEqual ( $ "tns:{ genericTypeName } Of{ genericTypeArgumentName } { genericTypeArgumentName } ", typeName ) ;
1408+ }
1409+
13641410 [ TestMethod ]
13651411 public void CheckSchemeOverride ( )
13661412 {
0 commit comments