# HG changeset patch # User Matthew Wild # Date 1583937416 0 # Node ID 33c7e49205912b5337cee1cefd3a1d9840082b67 # Parent 5efd6865486ccb73d21a9279a0f7805df5a36f16 storagemanager: Add tests for map stores diff -r 5efd6865486c -r 33c7e4920591 spec/core_storagemanager_spec.lua --- a/spec/core_storagemanager_spec.lua Fri Feb 28 21:55:40 2020 +0000 +++ b/spec/core_storagemanager_spec.lua Wed Mar 11 14:36:56 2020 +0000 @@ -90,6 +90,44 @@ end); end); + describe("map stores", function () + -- These tests rely on being executed in order, disable any order + -- randomization for this block + randomize(false); + + local store, kv_store; + it("may be opened", function () + store = assert(sm.open(test_host, "test-map", "map")); + end); + + it("may be opened as a keyval store", function () + kv_store = assert(sm.open(test_host, "test-map", "keyval")); + end); + + it("may set a specific key for a user", function () + assert(store:set("user9999", "foo", "bar")); + assert.same(kv_store:get("user9999"), { foo = "bar" }); + end); + + it("may get a specific key for a user", function () + assert.equal("bar", store:get("user9999", "foo")); + end); + + it("may remove data for a user", function () + assert(store:set("user9999", "foo", nil)); + do + local ret, err = store:get("user9999", "foo"); + assert.is_nil(ret); + assert.is_nil(err); + end + do + local ret, err = kv_store:get("user9999"); + assert.is_nil(ret); + assert.is_nil(err); + end + end); + end); + describe("archive stores", function () randomize(false);