diff options
Diffstat (limited to 'test/afb-test')
-rw-r--r-- | test/afb-test/CMakeLists.txt | 22 | ||||
-rw-r--r-- | test/afb-test/etc/CMakeLists.txt | 31 | ||||
-rw-r--r-- | test/afb-test/etc/aft-agl-helloworld.json | 53 | ||||
-rw-r--r-- | test/afb-test/fixtures/CMakeLists.txt | 31 | ||||
-rw-r--r-- | test/afb-test/fixtures/mapi_helloworld.lua | 31 | ||||
-rw-r--r-- | test/afb-test/tests/CMakeLists.txt | 31 | ||||
-rw-r--r-- | test/afb-test/tests/helloworld.lua | 38 | ||||
-rw-r--r-- | test/afb-test/tests/mapi_tests.lua | 29 |
8 files changed, 266 insertions, 0 deletions
diff --git a/test/afb-test/CMakeLists.txt b/test/afb-test/CMakeLists.txt new file mode 100644 index 0000000..1ac657d --- /dev/null +++ b/test/afb-test/CMakeLists.txt @@ -0,0 +1,22 @@ +########################################################################### +# Copyright 2015 - 2019 IoT.bzh +# +# author: Marec Frédéric <frederic.marec@iot.bzh> +# +# 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. +########################################################################### + + +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) diff --git a/test/afb-test/etc/CMakeLists.txt b/test/afb-test/etc/CMakeLists.txt new file mode 100644 index 0000000..d6f9e1c --- /dev/null +++ b/test/afb-test/etc/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2015 - 2019 IoT.bzh +# +# author: Marec Frédéric <frederic.marec@iot.bzh> +# +# 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. +########################################################################### + +################################################## +# helloworld test configuration files +################################################## +PROJECT_TARGET_ADD(helloworld-config) + + file(GLOB CONF_FILES "*.json") + + add_input_files("${CONF_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "TEST-CONFIG" + OUTPUT_NAME ${TARGET_NAME} + ) diff --git a/test/afb-test/etc/aft-agl-helloworld.json b/test/afb-test/etc/aft-agl-helloworld.json new file mode 100644 index 0000000..8742003 --- /dev/null +++ b/test/afb-test/etc/aft-agl-helloworld.json @@ -0,0 +1,53 @@ +{ + "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": "aft-helloworld", + "info": "Helloworld binding", + "require": [ + "helloworld" + ] + }, + "testVerb": [{ + "uid": "short", + "info": "Launch the short session of tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "helloworld", + "files": "helloworld.lua" + } + }, + { + "uid": "long", + "info": "Launch the long session of tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "helloworld", + "files": [ "helloworld.lua", "mapi_tests.lua" ] + } + }], + "mapis": [{ + "uid": "mapi-helloworld", + "info": "Faked helloworld API", + "libs": "mapi_helloworld.lua", + "verbs": [ + { + "uid": "subscribe", + "info": "Subscribe to events", + "action": "lua://mapi-helloworld#_subscribe" + }, + { + "uid": "unsubscribe", + "info": "Unsubscribe previously suscribed events.", + "action": "lua://mapi-helloworld#_unsubscribe" + }, + { + "uid": "list", + "info": "get message list", + "action": "lua://mapi-helloworld#_list" + } + ] + }] +} diff --git a/test/afb-test/fixtures/CMakeLists.txt b/test/afb-test/fixtures/CMakeLists.txt new file mode 100644 index 0000000..3f5e85a --- /dev/null +++ b/test/afb-test/fixtures/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2015 - 2019 IoT.bzh +# +# author: Marec Frédéric <frederic.marec@iot.bzh> +# +# 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. +########################################################################### + + +################################################## +# Helloworld Lua Scripts +################################################## +PROJECT_TARGET_ADD(fixture-files) + + file(GLOB LUA_FILES "*.lua") + add_input_files("${LUA_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "TEST-DATA" + OUTPUT_NAME ${TARGET_NAME} + ) diff --git a/test/afb-test/fixtures/mapi_helloworld.lua b/test/afb-test/fixtures/mapi_helloworld.lua new file mode 100644 index 0000000..6725ed8 --- /dev/null +++ b/test/afb-test/fixtures/mapi_helloworld.lua @@ -0,0 +1,31 @@ +--[[ + Copyright (C) 2019 "IoT.bzh" + Author Marec Frédéric <frederic.marec@iot.bzh> + + 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 _list(source, args) + AFB:success(source) +end diff --git a/test/afb-test/tests/CMakeLists.txt b/test/afb-test/tests/CMakeLists.txt new file mode 100644 index 0000000..63615db --- /dev/null +++ b/test/afb-test/tests/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2015 - 2019 IoT.bzh +# +# author: Marec Frédéric <frederic.marec@iot.bzh> +# +# 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. +########################################################################### + + +################################################## +# Helloworld Lua Scripts +################################################## +PROJECT_TARGET_ADD(test-files) + + file(GLOB LUA_FILES "*.lua") + add_input_files("${LUA_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "TEST-DATA" + OUTPUT_NAME ${TARGET_NAME} + ) diff --git a/test/afb-test/tests/helloworld.lua b/test/afb-test/tests/helloworld.lua new file mode 100644 index 0000000..8fc34ac --- /dev/null +++ b/test/afb-test/tests/helloworld.lua @@ -0,0 +1,38 @@ +--[[ + Copyright (C) 2019 "IoT.bzh" + Author Romain Forlot <romain.forlot@iot.bzh> + + 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 _callback(responseJ) + _AFT.assertStrContains(responseJ.request.status, "success") +end + +function _callbackError(responseJ) + _AFT.assertStrContains(responseJ.request.info, "verb pingfail unknown within api helloworld") +end + +_AFT.testVerbStatusSuccess('testPingSuccess','helloworld', 'ping', {}) +_AFT.setBefore("testPingSuccess",function() print("~~~~~ Begin testPingSuccess ~~~~~") end) +_AFT.setAfter("testPingSuccess",function() print("~~~~~ End testPingSuccess ~~~~~") end) + +_AFT.testVerbResponseEquals('testPingSuccessAndResponse','helloworld', 'ping', {}, "Ping count = %d") +_AFT.testVerbCb('testPingSuccessCallback','helloworld', 'ping', {}, _callback) + +_AFT.testVerbStatusError('testPingError', 'helloworld', 'pingfail', {}) +_AFT.testVerbResponseEqualsError('testPingErrorAndResponse', 'helloworld', 'pingfail', {}, "Ping Binder Daemon succeeds") +_AFT.testVerbCbError('testPingErrorCallback', 'helloworld', 'pingfail', {}, _callbackError)
\ No newline at end of file diff --git a/test/afb-test/tests/mapi_tests.lua b/test/afb-test/tests/mapi_tests.lua new file mode 100644 index 0000000..9d06eed --- /dev/null +++ b/test/afb-test/tests/mapi_tests.lua @@ -0,0 +1,29 @@ +--[[ + Copyright (C) 2019 "IoT.bzh" + Author Marec Frédéric <frederic.marec@iot.bzh> + + 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("TestListSuccess", "mapi-helloworld", "list", {}) + +_AFT.testVerbStatusSuccess("TestSubscribeSuccess", "mapi-helloworld", "subscribe", {}) + +_AFT.testVerbStatusSuccess("TestUnsubscribeSuccess", "mapi-helloworld", "unsubscribe", {}) + +_AFT.testVerbStatusError("TestWrongVerbError", "mapi-helloworld", "wrong_verb", {}) + +_AFT.testVerbStatusSkipped("TestSkippedVerb", "mapi-helloworld", "skipped_verb", {})
\ No newline at end of file |