From fe8f535a3544f3d828c6128d52591c5d194b693e Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Thu, 27 Sep 2018 11:25:14 +0200 Subject: Add tests on sources injection at runtime This adds some basic tests about adding dummy sources into the signal composer in addition of signals. Change-Id: I028faa612b749866a3ab986a2f46fe00dd2d7884 Signed-off-by: Romain Forlot --- test/afb-test/fixtures/source.json | 8 +++ test/afb-test/fixtures/sources_invalid.json | 13 +++++ .../tests/signal-composer_BasicAPITest.lua | 62 ++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 test/afb-test/fixtures/source.json create mode 100644 test/afb-test/fixtures/sources_invalid.json (limited to 'test/afb-test') diff --git a/test/afb-test/fixtures/source.json b/test/afb-test/fixtures/source.json new file mode 100644 index 0000000..817874f --- /dev/null +++ b/test/afb-test/fixtures/source.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/signal-composer-schema.json", + "sources": { + "uid": "Dummy_Source", + "api": "dummy", + "info": "A dummy source to be used as test source" + } + } diff --git a/test/afb-test/fixtures/sources_invalid.json b/test/afb-test/fixtures/sources_invalid.json new file mode 100644 index 0000000..e7388aa --- /dev/null +++ b/test/afb-test/fixtures/sources_invalid.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/signal-composer-schema.json", + "sources": [ + { + "uid": "MissingFieldSource", + "info": "A dummy source to be used as test source", + },{ + "uid": "InvalidFieldSource", + "api": "anotherDummySource", + "retention": "A dummy source to be used as test source", + } + ] + } diff --git a/test/afb-test/tests/signal-composer_BasicAPITest.lua b/test/afb-test/tests/signal-composer_BasicAPITest.lua index fe8a78c..61ef167 100644 --- a/test/afb-test/tests/signal-composer_BasicAPITest.lua +++ b/test/afb-test/tests/signal-composer_BasicAPITest.lua @@ -105,6 +105,68 @@ _AFT.testVerbStatusError(testPrefix.."getFilterInvalidFirstArgument","signal-com -- This tests the 'get' verb of the signal-composer API, with an invalid second parameter name, it should reply with an error _AFT.testVerbStatusError(testPrefix.."getFilterInvalidSecondArgument","signal-composer","get",{signal= "vehicule_speed", notValidAtAll= {average= 10}}); +--[[ +################################################################################ +########################### Adding new sources ################################# +################################################################################ +]] + +--------------------------- +-- Successful verb calls -- +--------------------------- + +--[[ This tests the 'addObjects' verb of the signal-composer API, this is by passing the path of a json containing sources + then making a get, a subscribe, and an unsubscribe looking for any misbehaviour from sources added with the verb ]] +_AFT.describe(testPrefix.."addSourcesByFile", function() + _AFT.assertVerbStatusSuccess("signal-composer", "addObjects", {file = _AFT.bindingRootDir.."/var/source.json"}) +end); + +-- This tests the 'addObjects' verb of the signal-composer API, this is by passing directly the json object as a lua table +_AFT.testVerbStatusSuccess(testPrefix.."addSourcesDirect","signal-composer","addObjects", + { + sources = { + uid = "DummySource2", + api = "dummy2", + info = "Another dummy source to be used as test source", + } + } +); + +----------------------- +-- Failed verb calls -- +----------------------- + +--[[ This tests the 'addObjects' verb of the signal-composer API, this is by passing directly the json object as a lua table. + This one has invalid doesn't specified the required api field which should fails the assertion]] +_AFT.testVerbStatusError(testPrefix.."addSourcesDirect_InvalidSource","signal-composer","addObjects", + { + sources = { + { + uid = "invalidSource", + info = "An invalid source without Api specified", + } + } + } +); + +--[[ This tests the 'addObjects' verb of the signal-composer API, this is by passing directly the json object as a lua table. + This one has a wrong retention field ]] +_AFT.testVerbStatusError(testPrefix.."addSourcesDirect_MissingField","signal-composer","addObjects", + { + sources= { + { + api = "invalidSource3", + info = "An invalid source without UID specified", + retention = "Invalid retention" + } + } + } +); + +--[[ This tests the 'addObjects' verb of the signal-composer API, this is by passing the path of a json containing sources + This one has invalid values for most of its field, the binding should not be able to add it ]] +_AFT.testVerbStatusError(testPrefix.."addSourcesByFile_InvalidSources","signal-composer","addObjects",{file = _AFT.bindingRootDir.."/var/sources_invalid.json"}); + --[[ ################################################################################ ########################### Adding new signals ################################# -- cgit 1.2.3-korg