Skip to content

Commit 82482cf

Browse files
committed
Adding IJsonSerializable and fromMap method
1 parent 7340522 commit 82482cf

File tree

5 files changed

+230
-48
lines changed

5 files changed

+230
-48
lines changed

src/integration/public360/main/classes/DataTypes/ExternalIdParameter.cls

+16-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* ExternalIdParameter deserializedExternalId = ExternalIdParameter.fromJson(json);
2020
*/
2121
@SuppressWarnings('PMD.FieldNamingConventions')
22-
public class ExternalIdParameter {
22+
public class ExternalIdParameter implements IJsonSerializable {
2323
/**
2424
* @description Error message for the `ExternalIdParameter` class and the `Id` field.
2525
*
@@ -122,6 +122,21 @@ public class ExternalIdParameter {
122122
);
123123
}
124124

125+
/**
126+
* @description Deserializes a map into an `ExternalIdParameter` object instance.
127+
*
128+
* @author Kenneth Soerensen <[email protected]>, Nav
129+
* @since 0.1.0, JAnuary 2025
130+
* @param mapData The map to deserialize.
131+
* @return `ExternalIdParameter` The deserialized object instance from the map.
132+
*/
133+
public static ExternalIdParameter fromMap(Map<String, Object> mapData) {
134+
ExternalIdParameter externalId = new ExternalIdParameter();
135+
externalId.Id = (String) mapData.get('Id');
136+
externalId.Type = (String) mapData.get('Type');
137+
return externalId;
138+
}
139+
125140
/**
126141
* @description Validates the object to ensuring it has the mandatory fields set.
127142
*

src/integration/public360/test/classes/DataTypes/ArchiveCodeParameterTest.cls

+43-14
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,16 @@ private class ArchiveCodeParameterTest {
372372
Integer sortOrder = 1;
373373
Boolean isManualText = true;
374374

375-
String expectedJsonString = '{"ArchiveCode":"123","ArchiveType":"Salesforce","Sort":1,"IsManualText":true}';
375+
String expectedJsonString =
376+
'{"ArchiveCode":"' +
377+
archiveCode +
378+
'","ArchiveType":"' +
379+
archiveType +
380+
'","Sort":' +
381+
sortOrder +
382+
',"IsManualText":' +
383+
isManualText +
384+
'}';
376385
String actualJsonString;
377386
System.Test.startTest();
378387
ArchiveCodeParameter archiveCodeParameterDataType = new ArchiveCodeParameter(
@@ -412,7 +421,16 @@ private class ArchiveCodeParameterTest {
412421
isManualText
413422
);
414423

415-
String jsonString = '{"ArchiveCode":"123","ArchiveType":"Salesforce","Sort":1,"IsManualText":true}';
424+
String jsonString =
425+
'{"ArchiveCode":"' +
426+
archiveCode +
427+
'","ArchiveType":"' +
428+
archiveType +
429+
'","Sort":' +
430+
sortOrder +
431+
',"IsManualText":' +
432+
isManualText +
433+
'}';
416434

417435
System.Test.startTest();
418436
ArchiveCodeParameter deserializedArchiveCodeDataType = ArchiveCodeParameter.fromJson(
@@ -463,7 +481,16 @@ private class ArchiveCodeParameterTest {
463481
isManualText
464482
);
465483

466-
String jsonString = '{"ArchiveCode":"123","ArchiveType":"Salesforce","Sort":1,"IsManualText":true, "ExtraChild": "Extra"}';
484+
String jsonString =
485+
'{"ArchiveCode":"' +
486+
archiveCode +
487+
'","ArchiveType":"' +
488+
archiveType +
489+
'","Sort":' +
490+
sortOrder +
491+
',"IsManualText":' +
492+
isManualText +
493+
', "ExtraChild": "Extra"}';
467494

468495
System.Test.startTest();
469496
ArchiveCodeParameter deserializedArchiveCodeDataType = ArchiveCodeParameter.fromJson(
@@ -552,11 +579,12 @@ private class ArchiveCodeParameterTest {
552579
isManualText
553580
);
554581

555-
Map<String, Object> mapData = new Map<String, Object>();
556-
mapData.put('ArchiveCode', archiveCode);
557-
mapData.put('ArchiveType', archiveType);
558-
mapData.put('Sort', sortOrder);
559-
mapData.put('IsManualText', isManualText);
582+
Map<String, Object> mapData = new Map<String, Object>{
583+
'ArchiveCode' => archiveCode,
584+
'ArchiveType' => archiveType,
585+
'Sort' => sortOrder,
586+
'IsManualText' => isManualText
587+
};
560588

561589
System.Test.startTest();
562590
ArchiveCodeParameter deserializedArchiveCodeDataType = ArchiveCodeParameter.fromMap(
@@ -607,12 +635,13 @@ private class ArchiveCodeParameterTest {
607635
isManualText
608636
);
609637

610-
Map<String, Object> mapData = new Map<String, Object>();
611-
mapData.put('ArchiveCode', archiveCode);
612-
mapData.put('ArchiveType', archiveType);
613-
mapData.put('Sort', sortOrder);
614-
mapData.put('IsManualText', isManualText);
615-
mapData.put('Extra', 'Extra');
638+
Map<String, Object> mapData = new Map<String, Object>{
639+
'ArchiveCode' => archiveCode,
640+
'ArchiveType' => archiveType,
641+
'Sort' => sortOrder,
642+
'IsManualText' => isManualText,
643+
'ExtraChild' => 'Extra'
644+
};
616645

617646
System.Test.startTest();
618647
ArchiveCodeParameter deserializedArchiveCodeDataType = ArchiveCodeParameter.fromMap(

src/integration/public360/test/classes/DataTypes/ContactParameterTest.cls

+45-14
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,16 @@ private class ContactParameterTest {
342342
String role = 'Sakspart';
343343
Boolean isUnofficial = true;
344344

345-
String expectedJsonString = '{"ReferenceNumber":"12345678900","ExternalId":"12345678900","Role":"Sakspart","IsUnofficial":true}';
345+
String expectedJsonString =
346+
'{"ReferenceNumber":"' +
347+
referenceNumber +
348+
'","ExternalId":"' +
349+
externalId +
350+
'","Role":"' +
351+
role +
352+
'","IsUnofficial":' +
353+
isUnofficial +
354+
'}';
346355
String actualJsonString;
347356
System.Test.startTest();
348357
ContactParameter contactParameterDataType = new ContactParameter(
@@ -382,7 +391,16 @@ private class ContactParameterTest {
382391
);
383392
contactParameterDataType.ExternalId = externalId;
384393

385-
String jsonString = '{"ReferenceNumber":"12345678900","ExternalId":"12345678900","Role":"Sakspart","IsUnofficial":true}';
394+
String jsonString =
395+
'{"ReferenceNumber":"' +
396+
referenceNumber +
397+
'","ExternalId":"' +
398+
externalId +
399+
'","Role":"' +
400+
role +
401+
'","IsUnofficial":' +
402+
isUnofficial +
403+
'}';
386404

387405
System.Test.startTest();
388406
ContactParameter deserializedContactDataType = ContactParameter.fromJson(
@@ -422,6 +440,7 @@ private class ContactParameterTest {
422440
@IsTest
423441
static void fromJsonWithExtraChild() {
424442
String referenceNumber = '12345678900';
443+
String externalId = '12345678900';
425444
String role = 'Sakspart';
426445
Boolean isUnofficial = true;
427446

@@ -430,8 +449,18 @@ private class ContactParameterTest {
430449
role,
431450
isUnofficial
432451
);
452+
contactParameterDataType.ExternalId = externalId;
433453

434-
String jsonString = '{"ReferenceNumber":"12345678900","Role":"Sakspart","IsUnofficial":true, "ExtraChild": "Extra"}';
454+
String jsonString =
455+
'{"ReferenceNumber":"' +
456+
referenceNumber +
457+
'","ExternalId":"' +
458+
externalId +
459+
'","Role":"' +
460+
role +
461+
'","IsUnofficial":' +
462+
isUnofficial +
463+
', "ExtraChild": "Extra"}';
435464

436465
System.Test.startTest();
437466
ContactParameter deserializedContactDataType = ContactParameter.fromJson(
@@ -515,11 +544,12 @@ private class ContactParameterTest {
515544
);
516545
contactParameterDataType.ExternalId = externalId;
517546

518-
Map<String, Object> mapData = new Map<String, Object>();
519-
mapData.put('ReferenceNumber', referenceNumber);
520-
mapData.put('ExternalId', externalId);
521-
mapData.put('Role', role);
522-
mapData.put('IsUnofficial', isUnofficial);
547+
Map<String, Object> mapData = new Map<String, Object>{
548+
'ReferenceNumber' => referenceNumber,
549+
'ExternalId' => externalId,
550+
'Role' => role,
551+
'IsUnofficial' => isUnofficial
552+
};
523553

524554
System.Test.startTest();
525555
ContactParameter deserializedContactDataType = ContactParameter.fromMap(
@@ -570,12 +600,13 @@ private class ContactParameterTest {
570600
);
571601
contactParameterDataType.ExternalId = externalId;
572602

573-
Map<String, Object> mapData = new Map<String, Object>();
574-
mapData.put('ReferenceNumber', referenceNumber);
575-
mapData.put('ExternalId', externalId);
576-
mapData.put('Role', role);
577-
mapData.put('IsUnofficial', isUnofficial);
578-
mapData.put('ExtraChild', 'Extra');
603+
Map<String, Object> mapData = new Map<String, Object>{
604+
'ReferenceNumber' => referenceNumber,
605+
'ExternalId' => externalId,
606+
'Role' => role,
607+
'IsUnofficial' => isUnofficial,
608+
'ExtraChild' => 'Extra'
609+
};
579610

580611
System.Test.startTest();
581612
ContactParameter deserializedContactDataType = ContactParameter.fromMap(

src/integration/public360/test/classes/DataTypes/EstateParameterTest.cls

+25-12
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,12 @@ private class EstateParameterTest {
202202
String recno = 'recno:1234';
203203
String externalId = '';
204204

205-
String expectedJsonString = '{"Recno":"recno:1234","ExternalId":""}';
205+
String expectedJsonString =
206+
'{"Recno":"' +
207+
recno +
208+
'","ExternalId":"' +
209+
externalId +
210+
'"}';
206211
String actualJsonString;
207212
System.Test.startTest();
208213
EstateParameter estateParameterDataType = new EstateParameter(
@@ -233,7 +238,12 @@ private class EstateParameterTest {
233238
String recno = '';
234239
String externalId = 'externalId1234';
235240

236-
String expectedJsonString = '{"Recno":"","ExternalId":"externalId1234"}';
241+
String expectedJsonString =
242+
'{"Recno":"' +
243+
recno +
244+
'","ExternalId":"' +
245+
externalId +
246+
'"}';
237247
String actualJsonString;
238248
System.Test.startTest();
239249
EstateParameter estateParameterDataType = new EstateParameter(
@@ -435,9 +445,10 @@ private class EstateParameterTest {
435445
externalId
436446
);
437447

438-
Map<String, Object> mapData = new Map<String, Object>();
439-
mapData.put('Recno', recno);
440-
mapData.put('ExternalId', externalId);
448+
Map<String, Object> mapData = new Map<String, Object>{
449+
'Recno' => recno,
450+
'ExternalId' => externalId
451+
};
441452

442453
System.Test.startTest();
443454
EstateParameter deserializedEstateParameterDataType = EstateParameter.fromMap(
@@ -475,9 +486,10 @@ private class EstateParameterTest {
475486
externalId
476487
);
477488

478-
Map<String, Object> mapData = new Map<String, Object>();
479-
mapData.put('Recno', recno);
480-
mapData.put('ExternalId', externalId);
489+
Map<String, Object> mapData = new Map<String, Object>{
490+
'Recno' => recno,
491+
'ExternalId' => externalId
492+
};
481493

482494
System.Test.startTest();
483495
EstateParameter deserializedEstateParameterDataType = EstateParameter.fromMap(
@@ -514,10 +526,11 @@ private class EstateParameterTest {
514526
externalId
515527
);
516528

517-
Map<String, Object> mapData = new Map<String, Object>();
518-
mapData.put('Recno', recno);
519-
mapData.put('ExternalId', externalId);
520-
mapData.put('Extra', 'Extra');
529+
Map<String, Object> mapData = new Map<String, Object>{
530+
'Recno' => recno,
531+
'ExternalId' => externalId,
532+
'ExtraChild' => 'Extra'
533+
};
521534

522535
System.Test.startTest();
523536
EstateParameter deserializedEstateParameterDataType = EstateParameter.fromMap(

0 commit comments

Comments
 (0)