From 91772e177263391c41d3492659ab4af77807139b Mon Sep 17 00:00:00 2001 From: aashikam Date: Mon, 2 Sep 2024 11:41:07 +0530 Subject: [PATCH 1/2] Enable salesforce listener tests --- ballerina/tests/listener_test.bal | 130 +++++++++++++++--------------- 1 file changed, 66 insertions(+), 64 deletions(-) diff --git a/ballerina/tests/listener_test.bal b/ballerina/tests/listener_test.bal index ed36f600..8de83540 100644 --- a/ballerina/tests/listener_test.bal +++ b/ballerina/tests/listener_test.bal @@ -17,79 +17,81 @@ import ballerina/lang.runtime; import ballerina/log; import ballerina/test; +import ballerina/os; +import ballerina/io; -// configurable string username = os:getEnv("USERNAME"); -// configurable string password = os:getEnv("PASSWORD"); +configurable string username = os:getEnv("LISTENER_USERNAME"); +configurable string password = os:getEnv("LISTENER_PASSWORD"); -// ListenerConfig listenerConfig = { -// auth: { -// username: username, -// password: password -// } -// }; -// listener Listener eventListener = new (listenerConfig); +ListenerConfig listenerConfig = { + auth: { + username: username, + password: password + } +}; +listener Listener eventListener = new (listenerConfig); isolated boolean isUpdated = false; isolated boolean isCreated = false; isolated boolean isDeleted = false; isolated boolean isRestored = false; -// service "/data/ChangeEvents" on eventListener { -// remote function onCreate(EventData payload) { -// string? eventType = payload.metadata?.changeType; -// if (eventType is string && eventType == "CREATE") { -// lock { -// isCreated = true; -// } -// io:println("Created " + payload.toString()); -// } else { -// io:println(payload.toString()); -// } -// } - -// remote isolated function onUpdate(EventData payload) { -// json accountName = payload.changedData.get("Name"); -// if (accountName.toString() == "WSO2 Inc") { -// lock { -// isUpdated = true; -// } -// io:println("Updated " + payload.toString()); -// } else { -// io:println(payload.toString()); -// } -// } - -// remote function onDelete(EventData payload) { -// string? eventType = payload.metadata?.changeType; -// if (eventType is string && eventType == "DELETE") { -// lock { -// isDeleted = true; -// } -// io:println("Deleted " + payload.toString()); -// } else { -// io:println(payload.toString()); -// } -// } - -// remote function onRestore(EventData payload) { -// string? eventType = payload.metadata?.changeType; -// if (eventType is string && eventType == "UNDELETE") { -// lock { -// isRestored = true; -// } -// io:println("Restored " + payload.toString()); -// } else { -// io:println(payload.toString()); -// } -// } -// } +service "/data/ChangeEvents" on eventListener { + remote function onCreate(EventData payload) { + string? eventType = payload.metadata?.changeType; + if (eventType is string && eventType == "CREATE") { + lock { + isCreated = true; + } + io:println("Created " + payload.toString()); + } else { + io:println(payload.toString()); + } + } + + remote isolated function onUpdate(EventData payload) { + json accountName = payload.changedData.get("Name"); + if (accountName.toString() == "WSO2 Inc") { + lock { + isUpdated = true; + } + io:println("Updated " + payload.toString()); + } else { + io:println(payload.toString()); + } + } + + remote function onDelete(EventData payload) { + string? eventType = payload.metadata?.changeType; + if (eventType is string && eventType == "DELETE") { + lock { + isDeleted = true; + } + io:println("Deleted " + payload.toString()); + } else { + io:println(payload.toString()); + } + } + + remote function onRestore(EventData payload) { + string? eventType = payload.metadata?.changeType; + if (eventType is string && eventType == "UNDELETE") { + lock { + isRestored = true; + } + io:println("Restored " + payload.toString()); + } else { + io:println(payload.toString()); + } + } +} // Using direct-token config for client configuration Client lisbaseClient = check new (sfConfigRefreshCodeFlow); string testRecordId = ""; @test:Config { - enable: false + enable: true } function testCreateRecord() { log:printInfo("lisbaseClient -> createRecord()"); @@ -108,7 +110,7 @@ function testCreateRecord() { } @test:Config { - enable: false, + enable: true, dependsOn: [testCreateRecord] } function testUpdateRecord() { @@ -126,7 +128,7 @@ function testUpdateRecord() { } @test:Config { - enable: false, + enable: true, dependsOn: [testUpdateRecord] } function testDeleteRecord() { @@ -140,7 +142,7 @@ function testDeleteRecord() { } @test:Config { - enable: false, + enable: true, dependsOn: [testCreateRecord] } function testCreatedEventTrigger() { @@ -152,7 +154,7 @@ function testCreatedEventTrigger() { } @test:Config { - enable: false, + enable: true, dependsOn: [testUpdateRecord] } function testUpdatedEventTrigger() { @@ -164,7 +166,7 @@ function testUpdatedEventTrigger() { } @test:Config { - enable: false, + enable: true, dependsOn: [testDeleteRecord] } function testDeletedEventTrigger() { From 33fc565ed16994976c068047ce670fc69e6e4331 Mon Sep 17 00:00:00 2001 From: aashikam Date: Tue, 3 Sep 2024 10:41:18 +0530 Subject: [PATCH 2/2] Add changes from code review --- ballerina/tests/listener_test.bal | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/ballerina/tests/listener_test.bal b/ballerina/tests/listener_test.bal index 8de83540..cfc55395 100644 --- a/ballerina/tests/listener_test.bal +++ b/ballerina/tests/listener_test.bal @@ -14,19 +14,19 @@ // specific language governing permissions and limitations // under the License. +import ballerina/io; import ballerina/lang.runtime; import ballerina/log; -import ballerina/test; import ballerina/os; -import ballerina/io; +import ballerina/test; configurable string username = os:getEnv("LISTENER_USERNAME"); configurable string password = os:getEnv("LISTENER_PASSWORD"); ListenerConfig listenerConfig = { auth: { - username: username, - password: password + username, + password } }; listener Listener eventListener = new (listenerConfig); @@ -37,9 +37,10 @@ isolated boolean isDeleted = false; isolated boolean isRestored = false; service "/data/ChangeEvents" on eventListener { + remote function onCreate(EventData payload) { string? eventType = payload.metadata?.changeType; - if (eventType is string && eventType == "CREATE") { + if eventType is "CREATE" { lock { isCreated = true; } @@ -49,9 +50,9 @@ service "/data/ChangeEvents" on eventListener { } } - remote isolated function onUpdate(EventData payload) { - json accountName = payload.changedData.get("Name"); - if (accountName.toString() == "WSO2 Inc") { + remote isolated function onUpdate(EventData payload) returns error? { + string accountName = check payload.changedData.get("Name").ensureType(); + if accountName is "WSO2 Inc" { lock { isUpdated = true; } @@ -63,7 +64,7 @@ service "/data/ChangeEvents" on eventListener { remote function onDelete(EventData payload) { string? eventType = payload.metadata?.changeType; - if (eventType is string && eventType == "DELETE") { + if eventType is "DELETE" { lock { isDeleted = true; } @@ -75,7 +76,7 @@ service "/data/ChangeEvents" on eventListener { remote function onRestore(EventData payload) { string? eventType = payload.metadata?.changeType; - if (eventType is string && eventType == "UNDELETE") { + if eventType is "UNDELETE" { lock { isRestored = true; } @@ -90,9 +91,7 @@ service "/data/ChangeEvents" on eventListener { Client lisbaseClient = check new (sfConfigRefreshCodeFlow); string testRecordId = ""; -@test:Config { - enable: true -} +@test:Config {} function testCreateRecord() { log:printInfo("lisbaseClient -> createRecord()"); Account account = { @@ -110,7 +109,6 @@ function testCreateRecord() { } @test:Config { - enable: true, dependsOn: [testCreateRecord] } function testUpdateRecord() { @@ -128,7 +126,6 @@ function testUpdateRecord() { } @test:Config { - enable: true, dependsOn: [testUpdateRecord] } function testDeleteRecord() { @@ -142,7 +139,6 @@ function testDeleteRecord() { } @test:Config { - enable: true, dependsOn: [testCreateRecord] } function testCreatedEventTrigger() { @@ -154,7 +150,6 @@ function testCreatedEventTrigger() { } @test:Config { - enable: true, dependsOn: [testUpdateRecord] } function testUpdatedEventTrigger() { @@ -166,7 +161,6 @@ function testUpdatedEventTrigger() { } @test:Config { - enable: true, dependsOn: [testDeleteRecord] } function testDeletedEventTrigger() {