diff --git a/ballerina/tests/listener_test.bal b/ballerina/tests/listener_test.bal index ed36f600..cfc55395 100644 --- a/ballerina/tests/listener_test.bal +++ b/ballerina/tests/listener_test.bal @@ -14,83 +14,84 @@ // specific language governing permissions and limitations // under the License. +import ballerina/io; import ballerina/lang.runtime; import ballerina/log; +import ballerina/os; import ballerina/test; -// 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, + 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 "CREATE" { + lock { + isCreated = true; + } + io:println("Created " + payload.toString()); + } else { + io:println(payload.toString()); + } + } + + remote isolated function onUpdate(EventData payload) returns error? { + string accountName = check payload.changedData.get("Name").ensureType(); + if accountName is "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 "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 "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 -} +@test:Config {} function testCreateRecord() { log:printInfo("lisbaseClient -> createRecord()"); Account account = { @@ -108,7 +109,6 @@ function testCreateRecord() { } @test:Config { - enable: false, dependsOn: [testCreateRecord] } function testUpdateRecord() { @@ -126,7 +126,6 @@ function testUpdateRecord() { } @test:Config { - enable: false, dependsOn: [testUpdateRecord] } function testDeleteRecord() { @@ -140,7 +139,6 @@ function testDeleteRecord() { } @test:Config { - enable: false, dependsOn: [testCreateRecord] } function testCreatedEventTrigger() { @@ -152,7 +150,6 @@ function testCreatedEventTrigger() { } @test:Config { - enable: false, dependsOn: [testUpdateRecord] } function testUpdatedEventTrigger() { @@ -164,7 +161,6 @@ function testUpdatedEventTrigger() { } @test:Config { - enable: false, dependsOn: [testDeleteRecord] } function testDeletedEventTrigger() {