From 985a931df0fb440ff724665a7183eb393da1f245 Mon Sep 17 00:00:00 2001 From: Li Xiaoming Date: Wed, 13 Nov 2019 17:31:13 +0800 Subject: fix: change test example following afb-test tree Change test repository tree Bug-AGL: SPEC-2040 Change-Id: Ic6aa57e181da9fb5587357c74dd6a1c6174bd1ec Signed-off-by: Li Xiaoming --- test/afb-test/CMakeLists.txt | 21 ++++ test/afb-test/etc/CMakeLists.txt | 31 ++++++ test/afb-test/etc/aft-persistence-test.json | 22 ++++ test/afb-test/tests/CMakeLists.txt | 31 ++++++ test/afb-test/tests/persistence_APITest.lua | 129 +++++++++++++++++++++++ test/afb-test/tests/persistence_BasicAPITest.lua | 108 +++++++++++++++++++ test/etc/CMakeLists.txt | 31 ------ test/etc/aft-persistence-test.json | 22 ---- test/tests/CMakeLists.txt | 31 ------ test/tests/persistence_APITest.lua | 129 ----------------------- test/tests/persistence_BasicAPITest.lua | 108 ------------------- 11 files changed, 342 insertions(+), 321 deletions(-) create mode 100644 test/afb-test/CMakeLists.txt create mode 100644 test/afb-test/etc/CMakeLists.txt create mode 100644 test/afb-test/etc/aft-persistence-test.json create mode 100644 test/afb-test/tests/CMakeLists.txt create mode 100644 test/afb-test/tests/persistence_APITest.lua create mode 100644 test/afb-test/tests/persistence_BasicAPITest.lua delete mode 100644 test/etc/CMakeLists.txt delete mode 100644 test/etc/aft-persistence-test.json delete mode 100644 test/tests/CMakeLists.txt delete mode 100644 test/tests/persistence_APITest.lua delete mode 100644 test/tests/persistence_BasicAPITest.lua diff --git a/test/afb-test/CMakeLists.txt b/test/afb-test/CMakeLists.txt new file mode 100644 index 0000000..81ddf88 --- /dev/null +++ b/test/afb-test/CMakeLists.txt @@ -0,0 +1,21 @@ +########################################################################### +# Copyright 2019 Konsulko Group +# +# author:Stoyan Bogdanov +# +# 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..1ee805b --- /dev/null +++ b/test/afb-test/etc/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2018 IoT.bzh +# +# author:Frédéric Marec +# +# 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. +########################################################################### + +################################################## +# Data persistence test configuration files +################################################## +PROJECT_TARGET_ADD(afb-test-config) + + file(GLOB CONF_FILES "*.json") + + add_input_files("${CONF_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "TEST-CONFIG" + OUTPUT_NAME ${TARGET_NAME} + ) \ No newline at end of file diff --git a/test/afb-test/etc/aft-persistence-test.json b/test/afb-test/etc/aft-persistence-test.json new file mode 100644 index 0000000..35a58ac --- /dev/null +++ b/test/afb-test/etc/aft-persistence-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": "aft-persistence", + "info": "AFB-test binding configuration file to test persistence api.", + "require": [ + "persistence" + ] + }, + "testVerb": { + "uid": "launch_all_tests", + "info": "Launch all the tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "persistence", + "files": ["persistence_BasicAPITest.lua", "persistence_APITest.lua"] + } + } +} \ No newline at end of file diff --git a/test/afb-test/tests/CMakeLists.txt b/test/afb-test/tests/CMakeLists.txt new file mode 100644 index 0000000..c03658a --- /dev/null +++ b/test/afb-test/tests/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2018 IoT.bzh +# +# author:Frédéric Marec +# +# 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. +########################################################################### + + +################################################## +# Data persistence 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} + ) \ No newline at end of file diff --git a/test/afb-test/tests/persistence_APITest.lua b/test/afb-test/tests/persistence_APITest.lua new file mode 100644 index 0000000..2356869 --- /dev/null +++ b/test/afb-test/tests/persistence_APITest.lua @@ -0,0 +1,129 @@ +--[[ + Copyright (C) 2019 "IoT.bzh" + Author Frédéric Marec + + 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 '_' +--]] + +local testPrefix ="persistence_APITest_" +local key_values0 = {"TESTinsert", "insert", "wrong_value", 3.1415926546, nil} +local key_values1 = key_values0 +local key_values2 = key_values0 + +local function formatize (arg) + return tostring(arg):gsub("[^a-zA-Z0-9_]", "_") +end + +for _, key_value0 in pairs(key_values0) do + for _, key_value1 in pairs(key_values1) do + + local arg1 = "key_"..formatize(key_value0).."_" + local arg2 = "value_"..formatize(key_value1) + + -- This tests the 'insert' verb of the persistence API + local test_name_insert = testPrefix.."insert_with_verification_"..arg1..arg2 + _AFT.describe(test_name_insert,function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value1}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) + end) + + -- This tests the 'delete' verb of the persistence API + local test_name_deldete = testPrefix.."delete_with_verification_"..arg1..arg2 + _AFT.describe(test_name_deldete,function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value1}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) + end) + + for _, key_value2 in pairs(key_values2) do + + local arg3 = "_updated_value_"..formatize(key_value2) + + -- This tests the 'update' verb of the persistence API + local test_name_update = testPrefix.."update_with_verification_"..arg1..arg2..arg3 + _AFT.describe(test_name_update,function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value1}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) + _AFT.assertVerbStatusSuccess("persistence", "update", {key= key_value0, value= key_value2}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value2}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) + _AFT.assertVerbResponseEqualsError("persistence","read", {key= key_value0},{key= key_value0, value= key_value2}) + _AFT.assertVerbResponseEqualsError("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) + end) + + -- This tests 'multiple insert' of the persistence API + local test_name_multiple_insert = testPrefix.."multiple_insert_with_verification_"..arg1..arg2..arg3 + _AFT.describe(test_name_multiple_insert,function() + + if ((key_value0 == key_value2) or (key_value1 == key_value2) or (key_value0 == key_value1) + or ((key_value0 == key_value2) and (key_value1 == key_value2) and (key_value0 == key_value1))) + then + _AFT.assertVerbStatusSuccess("persistence", "update", {key= key_value2, value= key_value2}) + + if (key_value0 == key_value2) + then + _AFT.assertVerbStatusError("persistence", "insert", {key= key_value0, value= key_value0}) + else + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value0}) + end + + if (key_value1 == key_value2) or (key_value0 == key_value1) + then + _AFT.assertVerbStatusError("persistence", "insert", {key= key_value1, value= key_value1}) + else + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value1, value= key_value1}) + end + + _AFT.assertVerbStatusError("persistence", "insert", {key= key_value1, value= key_value2}) + _AFT.assertVerbStatusError("persistence", "insert", {key= key_value2, value= key_value0}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value0}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value1},{key= key_value1, value= key_value1}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value2},{key= key_value2, value= key_value2}) + + if (key_value0 == key_value2) + then + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) + _AFT.assertVerbStatusError("persistence", "delete", {key= key_value2}) + else + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value2}) + end + + if (key_value1 == key_value2) or (key_value0 == key_value1) + then + _AFT.assertVerbStatusError("persistence", "delete", {key= key_value1}) + else + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value1}) + end + + else -- key_values0, key_value1 & key_value2 not equal + _AFT.assertVerbStatusSuccess("persistence", "update", {key= key_value2, value= key_value2}) + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value0}) + _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value1, value= key_value1}) + _AFT.assertVerbStatusError("persistence", "insert", {key= key_value1, value= key_value2}) + _AFT.assertVerbStatusError("persistence", "insert", {key= key_value2, value= key_value0}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value0}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value1},{key= key_value1, value= key_value1}) + _AFT.assertVerbResponseEquals("persistence","read", {key= key_value2},{key= key_value2, value= key_value2}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value1}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value2}) + end + end) + end + end +end diff --git a/test/afb-test/tests/persistence_BasicAPITest.lua b/test/afb-test/tests/persistence_BasicAPITest.lua new file mode 100644 index 0000000..7606bd8 --- /dev/null +++ b/test/afb-test/tests/persistence_BasicAPITest.lua @@ -0,0 +1,108 @@ +--[[ + Copyright (C) 2018 "IoT.bzh" + Author Frédéric Marec + + 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 '_' +--]] + +local testPrefix ="persistence_BasicAPITest_" + +-- This tests the 'insert' verb of the persistence API +_AFT.describe(testPrefix.."insert_with_verification",function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTinsert", value="insert"}) + _AFT.assertVerbResponseEquals("persistence","read", {key="TESTinsert"},{key="TESTinsert", value="insert"}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTinsert"}) + _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTinsert"},{key="TESTinsert", value="insert"}) +end) + +-- This tests the 'update' verb of the persistence API +_AFT.describe(testPrefix.."update_with_verification",function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTupdate", value="myvalue"}) + _AFT.assertVerbResponseEquals("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="myvalue"}) + _AFT.assertVerbStatusSuccess("persistence", "update", {key="TESTupdate", value="newvalue"}) + _AFT.assertVerbResponseEquals("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="newvalue"}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTupdate"}) + _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="myvalue"}) + _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="newvalue"}) +end) + +-- This tests the 'delete' verb of the persistence API +_AFT.describe(testPrefix.."delete_with_verification",function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTdelete", value="delete"}) + _AFT.assertVerbResponseEquals("persistence","read", {key="TESTdelete"},{key="TESTdelete", value="delete"}) + _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTdelete"}) + _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTdelete"},{key="TESTdelete", value="delete"}) +end) + +-- This tests the 'insert' verb of the persistence API +_AFT.testVerbStatusSuccess(testPrefix.."insert","persistence","insert", {key="TESTinsert", value="insert"}, nil, + function() + _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTinsert"}) + end) + +-- This tests the 'delete' verb of the persistence API +_AFT.testVerbStatusSuccess(testPrefix.."delete","persistence","delete", {key="TESTdelete"}, + function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTdelete", value="delete"}) + end, nil) + +-- This tests the 'update' verb of the persistence API +_AFT.testVerbStatusSuccess(testPrefix.."update","persistence","update", {key="TESTupdate", value="testupdate"}, + function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTupdate", value="newupdate"}) + end, + function() + _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTupdate"}) + end) + +-- This tests the 'read' verb of the persistence API +_AFT.testVerbStatusSuccess(testPrefix.."read","persistence","read", {key="TESTread"}, + function() + _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTread", value="myvalue"}) + end, + function() + _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTread"}) + end) + +-- This tests the 'read' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."read-unknow-value","persistence","read", {key="TESTread-unknow-value"}, nil, nil) + +-- This tests the 'insert' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."insert-without-value","persistence","insert", {key="TESTread-unknow-value"}, nil, + function() + _AFT.assertVerbStatusError("persistence", "delete", {key="TEST"}) + end) + +-- This tests the 'insert' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."insert-with-wrong_key","persistence","insert", {wrong_key="TESTinsert-wrong-key", value="TESTinsert-wrong-key"}, nil, + function() + _AFT.assertVerbStatusError("persistence", "delete", {key="TESTinsert-wrong-key"}) + end) + +-- This tests the 'insert' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."insert-with-wrong_value","persistence","insert", {key="TESTinsert-wrong-value", wrong_value="TESTinsert-wrong-value"}, nil, + function() + _AFT.assertVerbStatusError("persistence", "delete", {key="TESTinsert-wrong-value"}) + end) + +-- This tests the 'delete' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."delete-unknow-key","persistence","delete", {key="TESTdelete-unknow-key"}, nil, nil) + +-- This tests the 'insert' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."insert-with-anything","persistence","insert", {value="TESTinsert-with-anything"}, nil, nil) + +-- This tests the 'update' verb of the persistence API +_AFT.testVerbStatusError(testPrefix.."update-unkwon-null-value","persistence","update", {key=null}, nil, nil) diff --git a/test/etc/CMakeLists.txt b/test/etc/CMakeLists.txt deleted file mode 100644 index 1ee805b..0000000 --- a/test/etc/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -########################################################################### -# Copyright 2018 IoT.bzh -# -# author:Frédéric Marec -# -# 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. -########################################################################### - -################################################## -# Data persistence test configuration files -################################################## -PROJECT_TARGET_ADD(afb-test-config) - - file(GLOB CONF_FILES "*.json") - - add_input_files("${CONF_FILES}") - - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - LABELS "TEST-CONFIG" - OUTPUT_NAME ${TARGET_NAME} - ) \ No newline at end of file diff --git a/test/etc/aft-persistence-test.json b/test/etc/aft-persistence-test.json deleted file mode 100644 index 35a58ac..0000000 --- a/test/etc/aft-persistence-test.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": "aft-persistence", - "info": "AFB-test binding configuration file to test persistence api.", - "require": [ - "persistence" - ] - }, - "testVerb": { - "uid": "launch_all_tests", - "info": "Launch all the tests", - "action": "lua://AFT#_launch_test", - "args": { - "trace": "persistence", - "files": ["persistence_BasicAPITest.lua", "persistence_APITest.lua"] - } - } -} \ No newline at end of file diff --git a/test/tests/CMakeLists.txt b/test/tests/CMakeLists.txt deleted file mode 100644 index c03658a..0000000 --- a/test/tests/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -########################################################################### -# Copyright 2018 IoT.bzh -# -# author:Frédéric Marec -# -# 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. -########################################################################### - - -################################################## -# Data persistence 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} - ) \ No newline at end of file diff --git a/test/tests/persistence_APITest.lua b/test/tests/persistence_APITest.lua deleted file mode 100644 index 2356869..0000000 --- a/test/tests/persistence_APITest.lua +++ /dev/null @@ -1,129 +0,0 @@ ---[[ - Copyright (C) 2019 "IoT.bzh" - Author Frédéric Marec - - 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 '_' ---]] - -local testPrefix ="persistence_APITest_" -local key_values0 = {"TESTinsert", "insert", "wrong_value", 3.1415926546, nil} -local key_values1 = key_values0 -local key_values2 = key_values0 - -local function formatize (arg) - return tostring(arg):gsub("[^a-zA-Z0-9_]", "_") -end - -for _, key_value0 in pairs(key_values0) do - for _, key_value1 in pairs(key_values1) do - - local arg1 = "key_"..formatize(key_value0).."_" - local arg2 = "value_"..formatize(key_value1) - - -- This tests the 'insert' verb of the persistence API - local test_name_insert = testPrefix.."insert_with_verification_"..arg1..arg2 - _AFT.describe(test_name_insert,function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value1}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) - end) - - -- This tests the 'delete' verb of the persistence API - local test_name_deldete = testPrefix.."delete_with_verification_"..arg1..arg2 - _AFT.describe(test_name_deldete,function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value1}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) - end) - - for _, key_value2 in pairs(key_values2) do - - local arg3 = "_updated_value_"..formatize(key_value2) - - -- This tests the 'update' verb of the persistence API - local test_name_update = testPrefix.."update_with_verification_"..arg1..arg2..arg3 - _AFT.describe(test_name_update,function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value1}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) - _AFT.assertVerbStatusSuccess("persistence", "update", {key= key_value0, value= key_value2}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value2}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) - _AFT.assertVerbResponseEqualsError("persistence","read", {key= key_value0},{key= key_value0, value= key_value2}) - _AFT.assertVerbResponseEqualsError("persistence","read", {key= key_value0},{key= key_value0, value= key_value1}) - end) - - -- This tests 'multiple insert' of the persistence API - local test_name_multiple_insert = testPrefix.."multiple_insert_with_verification_"..arg1..arg2..arg3 - _AFT.describe(test_name_multiple_insert,function() - - if ((key_value0 == key_value2) or (key_value1 == key_value2) or (key_value0 == key_value1) - or ((key_value0 == key_value2) and (key_value1 == key_value2) and (key_value0 == key_value1))) - then - _AFT.assertVerbStatusSuccess("persistence", "update", {key= key_value2, value= key_value2}) - - if (key_value0 == key_value2) - then - _AFT.assertVerbStatusError("persistence", "insert", {key= key_value0, value= key_value0}) - else - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value0}) - end - - if (key_value1 == key_value2) or (key_value0 == key_value1) - then - _AFT.assertVerbStatusError("persistence", "insert", {key= key_value1, value= key_value1}) - else - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value1, value= key_value1}) - end - - _AFT.assertVerbStatusError("persistence", "insert", {key= key_value1, value= key_value2}) - _AFT.assertVerbStatusError("persistence", "insert", {key= key_value2, value= key_value0}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value0}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value1},{key= key_value1, value= key_value1}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value2},{key= key_value2, value= key_value2}) - - if (key_value0 == key_value2) - then - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) - _AFT.assertVerbStatusError("persistence", "delete", {key= key_value2}) - else - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value2}) - end - - if (key_value1 == key_value2) or (key_value0 == key_value1) - then - _AFT.assertVerbStatusError("persistence", "delete", {key= key_value1}) - else - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value1}) - end - - else -- key_values0, key_value1 & key_value2 not equal - _AFT.assertVerbStatusSuccess("persistence", "update", {key= key_value2, value= key_value2}) - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value0, value= key_value0}) - _AFT.assertVerbStatusSuccess("persistence", "insert", {key= key_value1, value= key_value1}) - _AFT.assertVerbStatusError("persistence", "insert", {key= key_value1, value= key_value2}) - _AFT.assertVerbStatusError("persistence", "insert", {key= key_value2, value= key_value0}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value0},{key= key_value0, value= key_value0}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value1},{key= key_value1, value= key_value1}) - _AFT.assertVerbResponseEquals("persistence","read", {key= key_value2},{key= key_value2, value= key_value2}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value0}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value1}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key= key_value2}) - end - end) - end - end -end diff --git a/test/tests/persistence_BasicAPITest.lua b/test/tests/persistence_BasicAPITest.lua deleted file mode 100644 index 7606bd8..0000000 --- a/test/tests/persistence_BasicAPITest.lua +++ /dev/null @@ -1,108 +0,0 @@ ---[[ - Copyright (C) 2018 "IoT.bzh" - Author Frédéric Marec - - 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 '_' ---]] - -local testPrefix ="persistence_BasicAPITest_" - --- This tests the 'insert' verb of the persistence API -_AFT.describe(testPrefix.."insert_with_verification",function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTinsert", value="insert"}) - _AFT.assertVerbResponseEquals("persistence","read", {key="TESTinsert"},{key="TESTinsert", value="insert"}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTinsert"}) - _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTinsert"},{key="TESTinsert", value="insert"}) -end) - --- This tests the 'update' verb of the persistence API -_AFT.describe(testPrefix.."update_with_verification",function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTupdate", value="myvalue"}) - _AFT.assertVerbResponseEquals("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="myvalue"}) - _AFT.assertVerbStatusSuccess("persistence", "update", {key="TESTupdate", value="newvalue"}) - _AFT.assertVerbResponseEquals("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="newvalue"}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTupdate"}) - _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="myvalue"}) - _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTupdate"},{key="TESTupdate", value="newvalue"}) -end) - --- This tests the 'delete' verb of the persistence API -_AFT.describe(testPrefix.."delete_with_verification",function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTdelete", value="delete"}) - _AFT.assertVerbResponseEquals("persistence","read", {key="TESTdelete"},{key="TESTdelete", value="delete"}) - _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTdelete"}) - _AFT.assertVerbResponseEqualsError("persistence","read", {key="TESTdelete"},{key="TESTdelete", value="delete"}) -end) - --- This tests the 'insert' verb of the persistence API -_AFT.testVerbStatusSuccess(testPrefix.."insert","persistence","insert", {key="TESTinsert", value="insert"}, nil, - function() - _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTinsert"}) - end) - --- This tests the 'delete' verb of the persistence API -_AFT.testVerbStatusSuccess(testPrefix.."delete","persistence","delete", {key="TESTdelete"}, - function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTdelete", value="delete"}) - end, nil) - --- This tests the 'update' verb of the persistence API -_AFT.testVerbStatusSuccess(testPrefix.."update","persistence","update", {key="TESTupdate", value="testupdate"}, - function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTupdate", value="newupdate"}) - end, - function() - _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTupdate"}) - end) - --- This tests the 'read' verb of the persistence API -_AFT.testVerbStatusSuccess(testPrefix.."read","persistence","read", {key="TESTread"}, - function() - _AFT.assertVerbStatusSuccess("persistence", "insert", {key="TESTread", value="myvalue"}) - end, - function() - _AFT.assertVerbStatusSuccess("persistence", "delete", {key="TESTread"}) - end) - --- This tests the 'read' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."read-unknow-value","persistence","read", {key="TESTread-unknow-value"}, nil, nil) - --- This tests the 'insert' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."insert-without-value","persistence","insert", {key="TESTread-unknow-value"}, nil, - function() - _AFT.assertVerbStatusError("persistence", "delete", {key="TEST"}) - end) - --- This tests the 'insert' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."insert-with-wrong_key","persistence","insert", {wrong_key="TESTinsert-wrong-key", value="TESTinsert-wrong-key"}, nil, - function() - _AFT.assertVerbStatusError("persistence", "delete", {key="TESTinsert-wrong-key"}) - end) - --- This tests the 'insert' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."insert-with-wrong_value","persistence","insert", {key="TESTinsert-wrong-value", wrong_value="TESTinsert-wrong-value"}, nil, - function() - _AFT.assertVerbStatusError("persistence", "delete", {key="TESTinsert-wrong-value"}) - end) - --- This tests the 'delete' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."delete-unknow-key","persistence","delete", {key="TESTdelete-unknow-key"}, nil, nil) - --- This tests the 'insert' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."insert-with-anything","persistence","insert", {value="TESTinsert-with-anything"}, nil, nil) - --- This tests the 'update' verb of the persistence API -_AFT.testVerbStatusError(testPrefix.."update-unkwon-null-value","persistence","update", {key=null}, nil, nil) -- cgit 1.2.3-korg