From 9366ae33603f2559edbc0284d5db6c5153f513f9 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sun, 23 Jun 2024 23:47:13 -0700 Subject: [PATCH] Add System.Blob.valueOf() --- .../Blob/valueOf/System_Blob_valueOf.cls | 38 ++++++++++ .../valueOf/System_Blob_valueOf.cls-meta.xml | 9 +++ .../Blob/valueOf/System_Blob_valueOf_TEST.cls | 72 +++++++++++++++++++ .../System_Blob_valueOf_TEST.cls-meta.xml | 9 +++ 4 files changed, 128 insertions(+) create mode 100644 src/System/Blob/valueOf/System_Blob_valueOf.cls create mode 100644 src/System/Blob/valueOf/System_Blob_valueOf.cls-meta.xml create mode 100644 src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls create mode 100644 src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls-meta.xml diff --git a/src/System/Blob/valueOf/System_Blob_valueOf.cls b/src/System/Blob/valueOf/System_Blob_valueOf.cls new file mode 100644 index 0000000..d5d500d --- /dev/null +++ b/src/System/Blob/valueOf/System_Blob_valueOf.cls @@ -0,0 +1,38 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +global class System_Blob_valueOf { + + @InvocableMethod(label='System.Blob.valueOf()' category='Flowpex System' iconName='slds:standard:default' description='Casts the specified String to a Blob.') + + public static List System_Blob_valueOf (List requests) { + List responses = new List(); + for (Request req : requests) { + Response res = new Response(); + try { + res.blobOfString = System.Blob.valueOf(req.stringToBlob); + } catch (Exception e) { + System.debug(e); + } + responses.add(res); + } + return responses; + } + + public class Request { + @InvocableVariable(required='true' label='String to blob' description='') + public String stringToBlob; + + public Request () {} + public Request (String s) { + this.stringToBlob = s; + } + } + + public class Response { + @InvocableVariable(label='Blob' description='') + public Blob blobOfString; + } +} \ No newline at end of file diff --git a/src/System/Blob/valueOf/System_Blob_valueOf.cls-meta.xml b/src/System/Blob/valueOf/System_Blob_valueOf.cls-meta.xml new file mode 100644 index 0000000..ff0b65f --- /dev/null +++ b/src/System/Blob/valueOf/System_Blob_valueOf.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + \ No newline at end of file diff --git a/src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls b/src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls new file mode 100644 index 0000000..631326d --- /dev/null +++ b/src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls @@ -0,0 +1,72 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +@isTest +private class System_Blob_valueOf_TEST { + + @isTest + static void testNoArgs () { + List requests = new List(); + + Test.startTest(); + List responses = System_Blob_valueOf.System_Blob_valueOf(requests); + Test.stopTest(); + + Assert.areEqual(0, responses.size()); + } + + @isTest + static void testEmptyRequest () { + List requests = new List(); + System_Blob_valueOf.Request req = new System_Blob_valueOf.Request(); + requests.add(req); + + Test.startTest(); + List responses = System_Blob_valueOf.System_Blob_valueOf(requests); + Test.stopTest(); + + Assert.areEqual(1, responses.size()); + System_Blob_valueOf.Response res = responses[0]; + Assert.areEqual(null, res.blobOfString); + } + + @isTest + static void testBlankArg () { + List requests = new List(); + System_Blob_valueOf.Request req = new System_Blob_valueOf.Request(''); + requests.add(req); + + Test.startTest(); + List responses = System_Blob_valueOf.System_Blob_valueOf(requests); + Test.stopTest(); + + Assert.areEqual(1, responses.size()); + System_Blob_valueOf.Response res = responses[0]; + Assert.areNotEqual(null, res.blobOfString); + Assert.areEqual(0, res.blobOfString.size()); + } + + @isTest + static void testManyArgs () { + List stringList = new List(); + for (Integer i = 0; i < 10; i++) { + stringList.add(i.toString()); + } + + Test.startTest(); + List requests = new List(); + for (String s : stringList) { + System_Blob_valueOf.Request req = new System_Blob_valueOf.Request(s); + requests.add(req); + } + List responses = System_Blob_valueOf.System_Blob_valueOf(requests); + Test.stopTest(); + + Assert.areEqual(10, responses.size()); + for (System_Blob_valueOf.Response res : responses) { + Assert.areNotEqual(null, res.blobOfString); + } + } +} \ No newline at end of file diff --git a/src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls-meta.xml b/src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls-meta.xml new file mode 100644 index 0000000..ff0b65f --- /dev/null +++ b/src/System/Blob/valueOf/System_Blob_valueOf_TEST.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + \ No newline at end of file -- 2.52.0