From: Chris Duncan Date: Mon, 24 Jun 2024 06:27:20 +0000 (-0700) Subject: Add System.Blob.toPdf() X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=6f31bcce09e99858d3ef6c9cf18fb0eb3d559919;p=flowpex.git Add System.Blob.toPdf() --- diff --git a/src/System/Blob/toPdf/System_Blob_toPdf.cls b/src/System/Blob/toPdf/System_Blob_toPdf.cls new file mode 100644 index 0000000..46d6eed --- /dev/null +++ b/src/System/Blob/toPdf/System_Blob_toPdf.cls @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +global class System_Blob_toPdf { + + @InvocableMethod(label='System.Blob.toPdf()' category='Flowpex System' iconName='slds:standard:form' description='Creates a binary object out of the given string, encoding it as a PDF file.') + + public static List System_Blob_toPdf (List requests) { + List responses = new List(); + for (Request req : requests) { + Response res = new Response(); + try { + if (req.stringToPdf != null) { + res.pdfOfString = System.Blob.toPdf(req.stringToPdf); + } + } catch (Exception e) { + System.debug(e); + } + responses.add(res); + } + return responses; + } + + public class Request { + @InvocableVariable(required='true' label='String to PDF' description='') + public String stringToPdf; + + public Request () {} + public Request (String s) { + this.stringToPdf = s; + } + } + + public class Response { + @InvocableVariable(label='PDF' description='') + public Blob pdfOfString; + } +} \ No newline at end of file diff --git a/src/System/Blob/toPdf/System_Blob_toPdf.cls-meta.xml b/src/System/Blob/toPdf/System_Blob_toPdf.cls-meta.xml new file mode 100644 index 0000000..ff0b65f --- /dev/null +++ b/src/System/Blob/toPdf/System_Blob_toPdf.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + \ No newline at end of file diff --git a/src/System/Blob/toPdf/System_Blob_toPdf_TEST.cls b/src/System/Blob/toPdf/System_Blob_toPdf_TEST.cls new file mode 100644 index 0000000..7dbc239 --- /dev/null +++ b/src/System/Blob/toPdf/System_Blob_toPdf_TEST.cls @@ -0,0 +1,86 @@ +/* + * SPDX-FileCopyrightText: 2024 Chris Duncan + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +@isTest +private class System_Blob_toPdf_TEST { + + @isTest + static void testNoArgs () { + List requests = new List(); + + Test.startTest(); + List responses = System_Blob_toPdf.System_Blob_toPdf(requests); + Test.stopTest(); + + Assert.areEqual(0, responses.size()); + } + + @isTest + static void testEmptyRequest () { + List requests = new List(); + System_Blob_toPdf.Request req = new System_Blob_toPdf.Request(); + requests.add(req); + + Test.startTest(); + List responses = System_Blob_toPdf.System_Blob_toPdf(requests); + Test.stopTest(); + + Assert.areEqual(1, responses.size()); + System_Blob_toPdf.Response res = responses[0]; + Assert.areEqual(null, res.pdfOfString); + } + + @isTest + static void testBlankArg () { + List requests = new List(); + System_Blob_toPdf.Request req = new System_Blob_toPdf.Request(''); + requests.add(req); + + Test.startTest(); + List responses = System_Blob_toPdf.System_Blob_toPdf(requests); + Test.stopTest(); + + Assert.areEqual(1, responses.size()); + System_Blob_toPdf.Response res = responses[0]; + Assert.areEqual(null, res.pdfOfString); + } + + @isTest + static void testWhitespaceArg () { + List requests = new List(); + System_Blob_toPdf.Request req = new System_Blob_toPdf.Request(' '); + requests.add(req); + + Test.startTest(); + List responses = System_Blob_toPdf.System_Blob_toPdf(requests); + Test.stopTest(); + + Assert.areEqual(1, responses.size()); + System_Blob_toPdf.Response res = responses[0]; + Assert.areNotEqual(null, res.pdfOfString); + } + + @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_toPdf.Request req = new System_Blob_toPdf.Request(s); + requests.add(req); + } + List responses = System_Blob_toPdf.System_Blob_toPdf(requests); + Test.stopTest(); + + Assert.areEqual(10, responses.size()); + for (System_Blob_toPdf.Response res : responses) { + Assert.areNotEqual(null, res.pdfOfString); + } + } +} \ No newline at end of file diff --git a/src/System/Blob/toPdf/System_Blob_toPdf_TEST.cls-meta.xml b/src/System/Blob/toPdf/System_Blob_toPdf_TEST.cls-meta.xml new file mode 100644 index 0000000..ff0b65f --- /dev/null +++ b/src/System/Blob/toPdf/System_Blob_toPdf_TEST.cls-meta.xml @@ -0,0 +1,9 @@ + + + + 61.0 + Active + \ No newline at end of file