diff options
author | Li Xiaoming <lixm.fnst@cn.fujitsu.com> | 2019-11-13 17:31:13 +0800 |
---|---|---|
committer | Li Xiaoming <lixm.fnst@cn.fujitsu.com> | 2019-11-13 17:31:13 +0800 |
commit | 985a931df0fb440ff724665a7183eb393da1f245 (patch) | |
tree | ff2bccb96936459265ebf782c4d885658912823d /test/afb-test/tests/persistence_APITest.lua | |
parent | 5c67c9433a3205ddde62a0bc63499ee1ef1ec75a (diff) |
fix: change test example following afb-test treeicefish_8.99.5icefish_8.99.4icefish_8.99.3icefish_8.99.2icefish_8.99.1icefish/8.99.5icefish/8.99.4icefish/8.99.3icefish/8.99.2icefish/8.99.18.99.58.99.48.99.38.99.28.99.1
Change test repository tree
Bug-AGL: SPEC-2040
Change-Id: Ic6aa57e181da9fb5587357c74dd6a1c6174bd1ec
Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
Diffstat (limited to 'test/afb-test/tests/persistence_APITest.lua')
-rw-r--r-- | test/afb-test/tests/persistence_APITest.lua | 129 |
1 files changed, 129 insertions, 0 deletions
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 <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 '_' +--]] + +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 |