Mercurial > prosody-hg
view spec/util_table_spec.lua @ 13144:033ea8b46d6a
mod_storage_sql: Compose a keyval+ store out of keyval and map store methods
Removes the need for the shim in storagemanager.
The methods only really access the 'store' property of the first (self)
argument, so this is safe.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 10 Jun 2023 16:39:48 +0200 |
| parents | 54756e3a54b9 |
| children |
line wrap: on
line source
local u_table = require "util.table"; describe("util.table", function () describe("create()", function () it("works", function () -- Can't test the allocated sizes of the table, so what you gonna do? assert.is.table(u_table.create(1,1)); end); end); describe("pack()", function () it("works", function () assert.same({ "lorem", "ipsum", "dolor", "sit", "amet", n = 5 }, u_table.pack("lorem", "ipsum", "dolor", "sit", "amet")); end); end); describe("move()", function () it("works", function () local t1 = { "apple", "banana", "carrot" }; local t2 = { "cat", "donkey", "elephant" }; local t3 = {}; u_table.move(t1, 1, 3, 1, t3); u_table.move(t2, 1, 3, 3, t3); assert.same({ "apple", "banana", "cat", "donkey", "elephant" }, t3); end); it("supports overlapping regions", function () do local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }; u_table.move(t1, 1, 3, 3); assert.same({ "apple", "banana", "apple", "banana", "carrot", "fig", "grapefruit" }, t1); end do local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }; u_table.move(t1, 1, 3, 2); assert.same({ "apple", "apple", "banana", "carrot", "endive", "fig", "grapefruit" }, t1); end do local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }; u_table.move(t1, 3, 5, 2); assert.same({ "apple", "carrot", "date", "endive", "endive", "fig", "grapefruit" }, t1); end do local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }; u_table.move(t1, 3, 5, 6); assert.same({ "apple", "banana", "carrot", "date", "endive", "carrot", "date", "endive" }, t1); end do local t1 = { "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }; u_table.move(t1, 3, 1, 3); assert.same({ "apple", "banana", "carrot", "date", "endive", "fig", "grapefruit" }, t1); end end); end); end);
