From: Chris Duncan Date: Mon, 24 Jun 2024 05:52:56 +0000 (-0700) Subject: Add System.Blob.size() X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=ae990f26232811ec38c58bb81a614b0bf987145d;p=flowpex.git Add System.Blob.size() --- diff --git a/src/System/Blob/size/System_Blob_size.cls b/src/System/Blob/size/System_Blob_size.cls new file mode 100644 index 0000000..ee4c86e --- /dev/null +++ b/src/System/Blob/size/System_Blob_size.cls @@ -0,0 +1,38 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +global class System_Blob_size { + + @InvocableMethod(label='System.Blob.size()' category='Flowpex System' iconName='slds:custom:custom79' description='Returns the number of characters in the Blob.') + + public static List System_Blob_size (List requests) { + List responses = new List(); + for (Request req : requests) { + Response res = new Response(); + try { + res.sizeOfBlob = req.blobToSize.size(); + } catch (Exception e) { + System.debug(e); + } + responses.add(res); + } + return responses; + } + + public class Request { + @InvocableVariable(required='true' label='Blob' description='') + public Blob blobToSize; + + public Request () {} + public Request (Blob b) { + this.blobToSize = b; + } + } + + public class Response { + @InvocableVariable(label='Size' description='') + public Integer sizeOfBlob; + } +} \ No newline at end of file diff --git a/src/System/Blob/size/System_Blob_size.cls-meta.xml b/src/System/Blob/size/System_Blob_size.cls-meta.xml new file mode 100644 index 0000000..ff0b65f --- /dev/null +++ b/src/System/Blob/size/System_Blob_size.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + \ No newline at end of file diff --git a/src/System/Blob/size/System_Blob_size_TEST.cls b/src/System/Blob/size/System_Blob_size_TEST.cls new file mode 100644 index 0000000..ddbaf90 --- /dev/null +++ b/src/System/Blob/size/System_Blob_size_TEST.cls @@ -0,0 +1,68 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +@isTest +private class System_Blob_size_TEST { + + @isTest + static void testNoArgs () { + List req = new List(); + + Test.startTest(); + List res = System_Blob_size.System_Blob_size(req); + Test.stopTest(); + + Assert.areEqual(0, res.size()); + } + + @isTest + static void testEmptyRequest () { + List req = new List(); + req.add(new System_Blob_size.Request()); + + Test.startTest(); + List res = System_Blob_size.System_Blob_size(req); + Test.stopTest(); + + Assert.areEqual(1, res.size()); + Assert.areEqual(null, res[0].sizeOfBlob); + } + + @isTest + static void testBlankArg () { + List req = new List(); + req.add(new System_Blob_size.Request(Blob.valueOf(''))); + + Test.startTest(); + List res = System_Blob_size.System_Blob_size(req); + Test.stopTest(); + + Assert.areEqual(1, res.size()); + Assert.areEqual(0, res[0].sizeOfBlob); + } + + @isTest + static void testManyArgs () { + List blobList = new List(); + blobList.add(Blob.valueOf('0')); + for (Integer i = 1; i < 10; i++) { + String s = blobList[i-1].toString() + i.toString(); + blobList.add(Blob.valueOf(s)); + } + + Test.startTest(); + List req = new List(); + for (Blob b : blobList) { + req.add(new System_Blob_size.Request(b)); + } + List res = System_Blob_size.System_Blob_size(req); + Test.stopTest(); + + Assert.areEqual(10, res.size()); + for (Integer i = 0; i < 10; i++) { + Assert.areEqual(i+1, res[i].sizeOfBlob); + } + } +} \ No newline at end of file diff --git a/src/System/Blob/size/System_Blob_size_TEST.cls-meta.xml b/src/System/Blob/size/System_Blob_size_TEST.cls-meta.xml new file mode 100644 index 0000000..ff0b65f --- /dev/null +++ b/src/System/Blob/size/System_Blob_size_TEST.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + \ No newline at end of file