@@ -1158,22 +1158,12 @@ public async Task Writes_UnionOfPrimitiveValues_FactoryFunctionAsync()
1158
1158
var modelCodeFile = modelsNS . FindChildByName < CodeFile > ( "primitivesRequestBuilder" , false ) ;
1159
1159
Assert . NotNull ( modelCodeFile ) ;
1160
1160
1161
- /*
1162
- \/**
1163
- * Creates a new instance of the appropriate class based on discriminator value
1164
- * @returns {ValidationError_errors_value}
1165
- *\/
1166
- export function createPrimitivesFromDiscriminatorValue(parseNode: ParseNode | undefined) : Primitives | undefined {
1167
- return parseNode?.getNumberValue() ?? parseNode?.getStringValue();
1168
- }
1169
- */
1170
-
1171
1161
// Test Factory function
1172
1162
var factoryFunction = modelCodeFile . GetChildElements ( ) . FirstOrDefault ( x => x is CodeFunction function && GetOriginalComposedType ( function . OriginalLocalMethod . ReturnType ) is not null ) ;
1173
1163
Assert . True ( factoryFunction is not null ) ;
1174
1164
writer . Write ( factoryFunction ) ;
1175
1165
var result = tw . ToString ( ) ;
1176
- Assert . Contains ( "return parseNode?.getNumberValue() ?? parseNode?.getStringValue() ;" , result ) ;
1166
+ Assert . Contains ( "return deserializeIntoPrimitives ;" , result ) ;
1177
1167
AssertExtensions . CurlyBracesAreClosed ( result , 1 ) ;
1178
1168
}
1179
1169
@@ -1251,11 +1241,10 @@ public async Task Writes_UnionOfPrimitiveValues_SerializerFunctionAsync()
1251
1241
Assert . True ( serializerFunction is not null ) ;
1252
1242
writer . Write ( serializerFunction ) ;
1253
1243
var serializerFunctionStr = tw . ToString ( ) ;
1254
- Assert . Contains ( "return" , serializerFunctionStr ) ;
1255
- Assert . Contains ( "switch" , serializerFunctionStr ) ;
1256
- Assert . Contains ( "case \" number\" :" , serializerFunctionStr ) ;
1257
- Assert . Contains ( "case \" string\" :" , serializerFunctionStr ) ;
1258
- Assert . Contains ( "break" , serializerFunctionStr ) ;
1244
+ Assert . Contains ( "if (!primitives) return {};" , serializerFunctionStr ) ;
1245
+ Assert . Contains ( "return {" , serializerFunctionStr ) ;
1246
+ Assert . Contains ( "\" double\" : n => { primitives.double = n.getNumberValue(); }," , serializerFunctionStr ) ;
1247
+ Assert . Contains ( "\" string\" : n => { primitives.string = n.getStringValue(); }," , serializerFunctionStr ) ;
1259
1248
AssertExtensions . CurlyBracesAreClosed ( serializerFunctionStr , 1 ) ;
1260
1249
}
1261
1250
@@ -1292,11 +1281,12 @@ public async Task Writes_UnionOfObjects_SerializerFunctionsAsync()
1292
1281
Assert . True ( serializerFunction is not null ) ;
1293
1282
writer . Write ( serializerFunction ) ;
1294
1283
var serializerFunctionStr = tw . ToString ( ) ;
1295
- Assert . Contains ( "return" , serializerFunctionStr ) ;
1296
- Assert . Contains ( "switch" , serializerFunctionStr ) ;
1297
- Assert . Contains ( "case \" Cat\" :" , serializerFunctionStr ) ;
1298
- Assert . Contains ( "case \" Dog\" :" , serializerFunctionStr ) ;
1299
- Assert . Contains ( "break" , serializerFunctionStr ) ;
1284
+ Assert . Contains ( "if (petsPatchRequestBody === undefined || petsPatchRequestBody === null) return;" , serializerFunctionStr ) ;
1285
+ Assert . Contains ( "writer.writeObjectValue<Dog>(\" Dog\" , petsPatchRequestBody.dog, serializeDog);" , serializerFunctionStr ) ;
1286
+ Assert . Contains ( "writer.writeObjectValue<Cat>(\" Cat\" , petsPatchRequestBody.cat, serializeCat);" , serializerFunctionStr ) ;
1287
+ Assert . Contains ( "writer.writeObjectValue<Cat>(\" Cat\" , petsPatchRequestBody.petsPatchRequestBodyCat, serializeCat);" , serializerFunctionStr ) ;
1288
+ Assert . Contains ( "writer.writeObjectValue<Dog>(\" Dog\" , petsPatchRequestBody.petsPatchRequestBodyDog, serializeDog);" , serializerFunctionStr ) ;
1289
+ Assert . Contains ( "if (petsPatchRequestBody.petsPatchRequestBodyCat) {" , serializerFunctionStr ) ;
1300
1290
AssertExtensions . CurlyBracesAreClosed ( serializerFunctionStr , 1 ) ;
1301
1291
}
1302
1292
@@ -1371,8 +1361,8 @@ public async Task Writes_CodeIntersectionType_DeserializerFunctionsAsync()
1371
1361
Assert . True ( deserializerFunction is not null ) ;
1372
1362
writer . Write ( deserializerFunction ) ;
1373
1363
var serializerFunctionStr = tw . ToString ( ) ;
1374
- Assert . Contains ( "...deserializeIntoBar( fooBar as Bar), " , serializerFunctionStr ) ;
1375
- Assert . Contains ( "...deserializeIntoFoo( fooBar as Foo), " , serializerFunctionStr ) ;
1364
+ Assert . Contains ( "\" bar \" : n => { fooBar.bar = n.getObjectValue< Bar>(createBarFromDiscriminatorValue); " , serializerFunctionStr ) ;
1365
+ Assert . Contains ( "\" foo \" : n => { fooBar.foo = n.getObjectValue< Foo>(createFooFromDiscriminatorValue); " , serializerFunctionStr ) ;
1376
1366
AssertExtensions . CurlyBracesAreClosed ( serializerFunctionStr , 1 ) ;
1377
1367
}
1378
1368
@@ -1409,8 +1399,8 @@ public async Task Writes_CodeIntersectionType_SerializerFunctionsAsync()
1409
1399
Assert . True ( serializerFunction is not null ) ;
1410
1400
writer . Write ( serializerFunction ) ;
1411
1401
var serializerFunctionStr = tw . ToString ( ) ;
1412
- Assert . Contains ( "serializeBar( writer, fooBar as Bar );" , serializerFunctionStr ) ;
1413
- Assert . Contains ( "serializeFoo( writer, fooBar as Foo );" , serializerFunctionStr ) ;
1402
+ Assert . Contains ( "writer.writeObjectValue<Bar>( \" Bar \" , fooBar.bar, serializeBar );" , serializerFunctionStr ) ;
1403
+ Assert . Contains ( "writer.writeObjectValue<Foo>( \" Foo \" , fooBar.foo, serializeFoo );" , serializerFunctionStr ) ;
1414
1404
AssertExtensions . CurlyBracesAreClosed ( serializerFunctionStr , 1 ) ;
1415
1405
}
1416
1406
@@ -1454,23 +1444,18 @@ public async Task Writes_CodeUnionBetweenObjectsAndPrimitiveTypes_SerializerAsyn
1454
1444
writer . Write ( serializeFunction ) ;
1455
1445
var result = tw . ToString ( ) ;
1456
1446
1457
- Assert . Contains ( "case typeof parentClass.property === \" string\" " , result ) ;
1458
- Assert . Contains ( "writer.writeStringValue(\" property\" , parentClass.property as string);" , result ) ;
1459
- Assert . Contains ( "case typeof parentClass.property === \" number\" " , result ) ;
1460
- Assert . Contains ( "writer.writeNumberValue(\" property\" , parentClass.property as number);" , result ) ;
1447
+ Assert . Contains ( "if (parentClass) {" , result ) ;
1448
+ Assert . Contains ( "writer.writeStringValue(\" definedInParent\" , parentClass.definedInParent);" , result ) ;
1449
+ Assert . Contains ( "writer.writeCollectionOfPrimitiveValues<string>(\" dummyColl\" , parentClass.dummyColl);" , result ) ;
1461
1450
Assert . Contains (
1462
- "writer.writeCollectionOfObjectValues<ArrayOfObjects >(\" property \" , parentClass.property as ArrayOfObjects[] | undefined | null " ,
1451
+ "writer.writeCollectionOfObjectValues<SomeComplexType >(\" dummyComplexColl \" , parentClass.dummyComplexColl, serializeSomeComplexType); " ,
1463
1452
result ) ;
1464
1453
Assert . Contains (
1465
- "writer.writeObjectValue<SingleObject >(\" property \" , parentClass.property as SingleObject | undefined | null " ,
1454
+ "writer.writeEnumValue<EnumType >(\" dummyEnumCollection \" , parentClass.dummyEnumCollection); " ,
1466
1455
result ) ;
1467
- Assert . Contains ( "writeStringValue" , result ) ;
1468
- Assert . Contains ( "writeCollectionOfPrimitiveValues" , result ) ;
1469
- Assert . Contains ( "writeCollectionOfObjectValues" , result ) ;
1470
- Assert . Contains ( "serializeSomeComplexType" , result ) ;
1471
- Assert . Contains ( "writeEnumValue" , result ) ;
1472
- Assert . Contains ( "writer.writeAdditionalData" , result ) ;
1473
- Assert . Contains ( "definedInParent" , result , StringComparison . OrdinalIgnoreCase ) ;
1456
+ Assert . Contains ( "writer.writeStringValue(\" dummyProp\" , parentClass.dummyProp);" , result ) ;
1457
+ Assert . Contains ( "writer.writeObjectValue<Union>(\" property\" , parentClass.property, );" , result ) ;
1458
+ Assert . Contains ( "writer.writeAdditionalData(parentClass.additionalData);" , result ) ;
1474
1459
}
1475
1460
1476
1461
[ Fact ]
@@ -1512,7 +1497,7 @@ public async Task Writes_CodeUnionBetweenObjectsAndPrimitiveTypes_DeserializerAs
1512
1497
writer . Write ( serializeFunction ) ;
1513
1498
var result = tw . ToString ( ) ;
1514
1499
1515
- Assert . Contains ( "\" property\" : n => { parentClass.property = n.getCollectionOfObjectValues<ArrayOfObjects>(createArrayOfObjectsFromDiscriminatorValue) ?? n.getNumberValue() ?? n. getObjectValue<SingleObject>(createSingleObjectFromDiscriminatorValue) ?? n.getStringValue( ); }" , result ) ;
1500
+ Assert . Contains ( "\" property\" : n => { parentClass.property = n.getObjectValue<Union>(createUnionFromDiscriminatorValue ); }" , result ) ;
1516
1501
}
1517
1502
}
1518
1503
0 commit comments