From e7ed3f960bf54ebf14fdeca128cfadbcafb68adb Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Thu, 4 Jul 2024 12:59:26 -0700 Subject: [PATCH] Add System.Id.to15() --- src/System/Id/to15/System_Id_to15.cls | 35 +++++++++++++ .../Id/to15/System_Id_to15.cls-meta.xml | 9 ++++ src/System/Id/to15/System_Id_to15_TEST.cls | 49 +++++++++++++++++++ .../Id/to15/System_Id_to15_TEST.cls-meta.xml | 9 ++++ 4 files changed, 102 insertions(+) create mode 100644 src/System/Id/to15/System_Id_to15.cls create mode 100644 src/System/Id/to15/System_Id_to15.cls-meta.xml create mode 100644 src/System/Id/to15/System_Id_to15_TEST.cls create mode 100644 src/System/Id/to15/System_Id_to15_TEST.cls-meta.xml diff --git a/src/System/Id/to15/System_Id_to15.cls b/src/System/Id/to15/System_Id_to15.cls new file mode 100644 index 0000000..498b455 --- /dev/null +++ b/src/System/Id/to15/System_Id_to15.cls @@ -0,0 +1,35 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +global class System_Id_to15 { + + @InvocableMethod(label='System.Id.to15()' category='Flowpex' iconName='slds:utility:record_lookup' description='Converts an 18-character Id value to a 15-character case-sensitive string.') + + global static List System_Id_to15 (List requests) { + List responses = new List(); + for (Request req : requests) { + Response res = new Response(); + Id reqId = req.Id; + res.id = reqId.to15(); + responses.add(res); + } + return responses; + } + + global class Request { + @InvocableVariable(label='ID' required='true' description='The 18-character ID value to be converted.') + global String id; + + global Request () {} + global Request (String s) { + this.id = s; + } + } + + global class Response { + @InvocableVariable(label='SObject Type' description='The 15-character case-sensitive version of the ID.') + global String id; + } +} \ No newline at end of file diff --git a/src/System/Id/to15/System_Id_to15.cls-meta.xml b/src/System/Id/to15/System_Id_to15.cls-meta.xml new file mode 100644 index 0000000..66cdc5b --- /dev/null +++ b/src/System/Id/to15/System_Id_to15.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + diff --git a/src/System/Id/to15/System_Id_to15_TEST.cls b/src/System/Id/to15/System_Id_to15_TEST.cls new file mode 100644 index 0000000..73093f7 --- /dev/null +++ b/src/System/Id/to15/System_Id_to15_TEST.cls @@ -0,0 +1,49 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +@isTest +private class System_Id_to15_TEST { + + @isTest + static void testNoArgs () { + List req = new List(); + + Test.startTest(); + List res = System_Id_to15.System_Id_to15(req); + Test.stopTest(); + + Assert.areEqual(0, res.size()); + } + + @isTest + static void testManyArgs () { + List listAccounts = new List(); + for (Integer i = 0; i < 5; i++) { + Account a = new Account( + Name = 'Test Account ' + i, + BillingStreet = '123 Main Street', + BillingCity = 'New York', + BillingState = 'New York', + BillingPostalCode = '10001', + BillingCountry = 'United States' + ); + listAccounts.add(a); + } + insert listAccounts; + + Test.startTest(); + List listSystem_Id_to15Request = new List(); + for (Account a : listAccounts) { + listSystem_Id_to15Request.add(new System_Id_to15.Request(a.Id)); + } + List results = System_Id_to15.System_Id_to15(listSystem_Id_to15Request); + Test.stopTest(); + + Assert.areEqual(5, results.size()); + for (Integer i = 0; i < results.size(); i++) { + Assert.areEqual(listAccounts[i].Id, results[i].id); + } + } +} \ No newline at end of file diff --git a/src/System/Id/to15/System_Id_to15_TEST.cls-meta.xml b/src/System/Id/to15/System_Id_to15_TEST.cls-meta.xml new file mode 100644 index 0000000..66cdc5b --- /dev/null +++ b/src/System/Id/to15/System_Id_to15_TEST.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + -- 2.52.0