From dc63d731f884da11cb0fc2d3b98eef5e2c2c07bc Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Fri, 29 Jun 2018 19:42:56 +0200 Subject: First draft for mock apis An m(ock)api is a plugin with its action as verb. About now the event listener is the same then the main api Change-Id: Iadbbb60cfbe9d5ef85801c346e6565ccde92b0c4 Signed-off-by: Romain Forlot --- conf.d/project/etc/aft-mapis.json | 59 +++++++++++++++++++++++++++++++++++ conf.d/project/etc/aft-test.json | 22 +++++++++++++ conf.d/project/etc/test-config.json | 22 ------------- conf.d/project/etc/test-fapi.json | 59 ----------------------------------- conf.d/project/lua.d/fapi_low-can.lua | 43 +++++++++++++++++++++++++ conf.d/project/lua.d/fapi_tests.lua | 51 ++++++++++++++++++++++++++++++ 6 files changed, 175 insertions(+), 81 deletions(-) create mode 100644 conf.d/project/etc/aft-mapis.json create mode 100644 conf.d/project/etc/aft-test.json delete mode 100644 conf.d/project/etc/test-config.json delete mode 100644 conf.d/project/etc/test-fapi.json create mode 100644 conf.d/project/lua.d/fapi_low-can.lua create mode 100644 conf.d/project/lua.d/fapi_tests.lua (limited to 'conf.d/project') diff --git a/conf.d/project/etc/aft-mapis.json b/conf.d/project/etc/aft-mapis.json new file mode 100644 index 0000000..4ecfbbb --- /dev/null +++ b/conf.d/project/etc/aft-mapis.json @@ -0,0 +1,59 @@ +{ + "id": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "metadata": { + "uid": "Test", + "version": "1.0", + "api": "test", + "info": "Configuration to test an emulated api", + "require": [ + "low-can" + ] + }, + "onload": { + "uid": "launch_all_tests", + "info": "Launch all the tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "low-can", + "files": "mapi_tests.lua" + } + }, + "mapis": [{ + "uid": "low-can", + "info": "Faked low-can API", + "libs": "mapi_low-can.lua", + "verbs": [ + { + "uid": "subscribe", + "info": "Subscribe to CAN signals events", + "action": "lua://low-can#_subscribe" + }, + { + "uid": "unsubscribe", + "info": "Unsubscribe previously suscribed signals.", + "action": "lua://low-can#_unsubscribe" + }, + { + "uid": "get", + "info": "get a current value of CAN message", + "action": "lua://low-can#_get" + }, + { + "uid": "list", + "info": "get a supported CAN message list", + "action": "lua://low-can#_list" + }, + { + "uid": "auth", + "info": "Authenticate session to be raise Level Of Assurance.", + "action": "lua://low-can#_auth" + }, + { + "uid": "write", + "info": "Write a CAN messages to the CAN bus.", + "action": "lua://low-can#_write" + } + ] + }] +} diff --git a/conf.d/project/etc/aft-test.json b/conf.d/project/etc/aft-test.json new file mode 100644 index 0000000..fa26c5f --- /dev/null +++ b/conf.d/project/etc/aft-test.json @@ -0,0 +1,22 @@ +{ + "id": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "metadata": { + "uid": "Test", + "version": "1.0", + "api": "test", + "info": "Binding made to tests other bindings", + "require": [ + "hello" + ] + }, + "onload": { + "uid": "launch_all_tests", + "info": "Launch all the tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "hello", + "files": "helloworld.lua" + } + } +} diff --git a/conf.d/project/etc/test-config.json b/conf.d/project/etc/test-config.json deleted file mode 100644 index fa26c5f..0000000 --- a/conf.d/project/etc/test-config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", - "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", - "metadata": { - "uid": "Test", - "version": "1.0", - "api": "test", - "info": "Binding made to tests other bindings", - "require": [ - "hello" - ] - }, - "onload": { - "uid": "launch_all_tests", - "info": "Launch all the tests", - "action": "lua://AFT#_launch_test", - "args": { - "trace": "hello", - "files": "helloworld.lua" - } - } -} diff --git a/conf.d/project/etc/test-fapi.json b/conf.d/project/etc/test-fapi.json deleted file mode 100644 index 283bceb..0000000 --- a/conf.d/project/etc/test-fapi.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "id": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", - "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", - "metadata": { - "uid": "Test", - "version": "1.0", - "api": "test", - "info": "Configuration to test an emulated api", - "require": [ - "low-can" - ] - }, - "onload": { - "uid": "launch_all_tests", - "info": "Launch all the tests", - "action": "lua://AFT#_launch_test", - "args": { - "trace": "low-can", - "files": "fapi.lua" - } - }, - "fapis": [{ - "uid": "low-can", - "info": "Faked low-can API", - "libs": "low-can_fapi.lua", - "verbs": [ - { - "uid": "subscribe", - "info": "Subscribe to CAN signals events", - "action": "lua://low-can#_subscribe" - }, - { - "uid": "unsubscribe", - "info": "Unsubscribe previously suscribed signals.", - "action": "lua://low-can#_unsubscribe" - }, - { - "uid": "get", - "info": "get a current value of CAN message", - "action": "lua://low-can#_get" - }, - { - "uid": "list", - "info": "get a supported CAN message list", - "action": "lua://low-can#_list" - }, - { - "uid": "auth", - "info": "Authenticate session to be raise Level Of Assurance.", - "action": "lua://low-can#_auth" - }, - { - "uid": "write", - "info": "Write a CAN messages to the CAN bus.", - "action": "lua://low-can#_write" - } - ] - }] -} diff --git a/conf.d/project/lua.d/fapi_low-can.lua b/conf.d/project/lua.d/fapi_low-can.lua new file mode 100644 index 0000000..f7cd99a --- /dev/null +++ b/conf.d/project/lua.d/fapi_low-can.lua @@ -0,0 +1,43 @@ +--[[ + Copyright (C) 2018 "IoT.bzh" + Author Romain Forlot + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + NOTE: strict mode: every global variables should be prefixed by '_' +--]] + +function _subscribe(source, args) + AFB:success(source) +end + +function _unsubscribe(source, args) + AFB:success(source) +end + +function _get(source, args) + AFB:success(source) +end + +function _list(source, args) + AFB:success(source) +end + +function _auth(source, args) + AFB:success(source) +end + +function _write(source, args) + AFB:success(source) +end diff --git a/conf.d/project/lua.d/fapi_tests.lua b/conf.d/project/lua.d/fapi_tests.lua new file mode 100644 index 0000000..1111a2d --- /dev/null +++ b/conf.d/project/lua.d/fapi_tests.lua @@ -0,0 +1,51 @@ +--[[ + Copyright (C) 2018 "IoT.bzh" + Author Romain Forlot + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + NOTE: strict mode: every global variables should be prefixed by '_' +--]] + +_AFT.testVerbStatusSuccess("TestListverb", "low-can", "list", {}) +_AFT.testVerbStatusSuccess("TestGetVerb", "low-can", "get", { event = "engine.speed"}) + +_AFT.testCustom("Test_detection_is_off", function() + local logMsg = "signal: Engine is off, diagnostic_messages.engine.speed won't received responses until it's on" + _AFT.addLogToMonitor("low-can", "warning", logMsg) + + _AFT.assertVerbStatusSuccess("low-can","subscribe", { event = "diagnostic_messages.engine.speed" }) + _AFT.assertLogReceived(logMsg) + _AFT.assertVerbStatusSuccess("low-can","unsubscribe", { event = "diagnostic_messages.engine.speed" }) +end) + +_AFT.testCustom("Test_turning_on", function() + _AFT.assertVerbStatusSuccess("low-can","subscribe", { event = "diagnostic_messages.engine.speed" }) + + local evt = "low-can/diagnostic_messages" + local logMsg = "signal: Engine is off, diagnostic_messages.engine.speed won't received responses until it's on" + _AFT.addLogToMonitor("low-can", "warning", logMsg) + _AFT.addEventToMonitor(evt) + + local ret = os.execute("./var/replay_launcher.sh ./var/test1.canreplay") + _AFT.assertIsTrue(ret) + + _AFT.assertEvtReceived(evt, function(eventName, data) + _AFT.assertIsTrue(data.name == "diagnostic_messages.engine.speed") + end) + + _AFT.assertLogNotReceived(logMsg) + + _AFT.assertVerbStatusSuccess("low-can","unsubscribe", { event = "diagnostic_messages.engine.speed" }) +end) -- cgit 1.2.3-korg